MySQL で整数列名を持つ動的ピボット テーブルを作成するには、少し困難が伴います。 user_id 値が整数の場合、提供されたクエリを実行するときにエラーが発生する可能性があります。この問題を解決するには、user_id 値をバックティック (`) で囲む必要があります。
調整された SQL クエリは次のようになります。
SET @sql = NULL; SELECT GROUP_CONCAT(DISTINCT CONCAT( 'max(case when user_id = ''', user_id, ''' then score end) AS `', user_id, '`' ) ) INTO @sql FROM measure2; SET @sql = CONCAT('SELECT inspection_date, ', @sql, ' FROM measure2 GROUP BY inspection_date'); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
ここでの主な変更点は、GROUP_CONCAT ステートメントの user_id 値の周囲にバックティックを追加することです。これにより、user_id 値が列名ではなく文字列として扱われるようになります。
SQL Fiddle Demo: https://sqlfiddle.com/#!2/eab24/ 4
これで、整数の user_id 値を使用しても、動的ピボット テーブルが正常に生成されます。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3