SQL横持ちから縦持ち
SQLの横持ちから縦持ちに変換するには、UNION ALLやCASE文などのSQL関数を使用して、横持ちのデータを縦持ちに変換する必要があります。
例えば、以下のような横持ちのデータがあるとします。
markdownCopy codeID | Name | Score1 | Score2 | Score3
------------------------------------
1 | John | 80 | 90 | 85
2 | Jane | 95 | 92 | 98
3 | Alex | 88 | 79 | 93
このデータを縦持ちに変換するには、以下のようなSQL文を使用します。
sqlCopy codeSELECT ID, Name, 'Score1' AS ScoreType, Score1 AS Score FROM table_name
UNION ALL
SELECT ID, Name, 'Score2' AS ScoreType, Score2 AS Score FROM table_name
UNION ALL
SELECT ID, Name, 'Score3' AS ScoreType, Score3 AS Score FROM table_name;
これにより、以下のような縦持ちのデータが得られます。
markdownCopy codeID | Name | ScoreType | Score
-----------------------------
1 | John | Score1 | 80
1 | John | Score2 | 90
1 | John | Score3 | 85
2 | Jane | Score1 | 95
2 | Jane | Score2 | 92
2 | Jane | Score3 | 98
3 | Alex | Score1 | 88
3 | Alex | Score2 | 79
3 | Alex | Score3 | 93