mysqlで行を列に変換するSQL文の書き方は何ですか?
MySQLでは、行を列に変換する方法として、次の方法があります:
- CASE文と集計関数を使用する:
SELECT
id,
MAX(CASE WHEN key = 'key1' THEN value END) AS value1,
MAX(CASE WHEN key = 'key2' THEN value END) AS value2,
MAX(CASE WHEN key = 'key3' THEN value END) AS value3
FROM
your_table
GROUP BY
id;
- PIVOT関数を使用(MySQL 8.0以降でサポート):
SELECT
id,
value1,
value2,
value3
FROM
your_table
PIVOT (
MAX(value)
FOR key IN (key1, key2, key3)
) AS p;
これらの文は、your_tableという名前のテーブルがあり、id、key、valueの列が含まれていることを前提としています。実際のテーブル構造とデータに合わせて調整してください。