SQLでピボットテーブルを作成する方法


  1. 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
  1. PIVOT句を使用した方法:
SELECT
  カラム1,
  [値1] AS 列1,
  [値2] AS 列2,
  ...
FROM
  (SELECT カラム1, カラム2, 値 FROM テーブル名) AS サブクエリ
PIVOT
  (SUM(値) FOR カラム2 IN ([値1], [値2], ...)) AS ピボットテーブル
  1. 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

これらの方法は、ピボットテーブルを作成するための一般的なパターンです。データベースの仕様に応じて最適な方法を選択してください。