MySQL 行列変換:ピボットとアンピボットのSQL

通常在MySQL中,实现行转列和列转行的方法如下:

  1. 集約関数と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;
  1. 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;

これらの方法は、具体的な要求やデータ構造に応じて調整や拡張が可能であり、行列変換を実現することができます。

bannerAds