- CASE文を使用した方法:
SELECT
カラム1,
SUM(CASE WHEN 条件1 THEN 値1 ELSE 0 END) AS 列1,
SUM(CASE WHEN 条件2 THEN 値2 ELSE 0 END) AS 列2,
...
FROM
テーブル名
GROUP BY
カラム1
- PIVOT句を使用した方法:
SELECT
カラム1,
[値1] AS 列1,
[値2] AS 列2,
...
FROM
(SELECT カラム1, カラム2, 値 FROM テーブル名) AS サブクエリ
PIVOT
(SUM(値) FOR カラム2 IN ([値1], [値2], ...)) AS ピボットテーブル
- CROSS JOINとSUMを使用した方法:
SELECT
カラム1,
SUM(CASE カラム2 WHEN '値1' THEN 値 ELSE 0 END) AS 列1,
SUM(CASE カラム2 WHEN '値2' THEN 値 ELSE 0 END) AS 列2,
...
FROM
テーブル名
CROSS JOIN
(SELECT '値1' AS カラム2 UNION ALL SELECT '値2' UNION ALL ...) AS サブクエリ
GROUP BY
カラム1
これらの方法は、ピボットテーブルを作成するための一般的なパターンです。データベースの仕様に応じて最適な方法を選択してください。