見出し画像

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

この記事が気に入ったらサポートをしてみませんか?