MySQL 行列変換:ピボットとアンピボットのSQL
通常在MySQL中,实现行转列和列转行的方法如下:
- 集約関数とCASE文を使用して、列から行への操作を行います。
SELECT
MAX(CASE WHEN attribute = 'attribute1' THEN value END) AS attribute1,
MAX(CASE WHEN attribute = 'attribute2' THEN value END) AS attribute2,
MAX(CASE WHEN attribute = 'attribute3' THEN value END) AS attribute3
FROM your_table
GROUP BY id;
- UNION ALLを使用して列を行に変換します。
SELECT 'attribute1' AS attribute, attribute1 AS value FROM your_table
UNION ALL
SELECT 'attribute2' AS attribute, attribute2 AS value FROM your_table
UNION ALL
SELECT 'attribute3' AS attribute, attribute3 AS value FROM your_table;
これらの方法は、具体的な要求やデータ構造に応じて調整や拡張が可能であり、行列変換を実現することができます。