SQL Serverでのピボットテーブルの作成方法と例


  1. 基本的なピボットテーブルの作成方法:

    SELECT 列1, 列2, ...,
          MAX(CASE WHEN 条件1 THEN 値 END) AS 列名1,
          MAX(CASE WHEN 条件2 THEN 値 END) AS 列名2,
          ...
    FROM テーブル名
    GROUP BY 列1, 列2, ...

    このクエリでは、条件に基づいて値を集計し、新しい列として表示します。

  2. 動的なピボットテーブルの作成方法:

    DECLARE @動的クエリ NVARCHAR(MAX)
    SELECT @動的クエリ = N'
    SELECT 列1, 列2, ...,
          ' + STRING_AGG('
          MAX(CASE WHEN ' + 条件 + ' THEN 値 END) AS ' + 列名, ',') + '
    FROM テーブル名
    GROUP BY 列1, 列2, ...
    '
    FROM 条件と列名のマッピングテーブル
    SET @動的クエリ = REPLACE(@動的クエリ, ',', '')
    EXEC sp_executesql @動的クエリ

    この方法では、条件と列名をマッピングするテーブルを使用して、動的なピボットテーブルを作成します。これにより、列数が動的に変わる場合でも対応できます。

これらは基本的なピボットテーブルの作成方法の例です。実際の使用例に応じて、クエリをカスタマイズすることができます。データ分析や集計において、ピボットテーブルは非常に便利なツールであり、大量のデータを要約して可視化するために広く使用されています。