-
基本的なPIVOT操作の例:
SELECT * FROM ( SELECT category, product, sales FROM sales_table ) AS source_table PIVOT ( SUM(sales) FOR product IN ([Product A], [Product B], [Product C]) ) AS pivot_table;
上記の例では、
sales_table
というテーブルからcategory
、product
、sales
の列を取得し、product
ごとにsales
を集計して列に変換しています。 -
動的なPIVOT操作の例:
DECLARE @columns NVARCHAR(MAX), @query NVARCHAR(MAX); SELECT @columns = STUFF( ( SELECT DISTINCT ',[' + product + ']' FROM sales_table FOR XML PATH('') ), 1, 1, '' ); SET @query = ' SELECT * FROM ( SELECT category, product, sales FROM sales_table ) AS source_table PIVOT ( SUM(sales) FOR product IN (' + @columns + ') ) AS pivot_table;'; EXECUTE(@query);
上記の例では、
sales_table
というテーブルからproduct
の値を動的に取得し、それぞれの値を列として使ってPIVOT操作を行っています。これにより、テーブルに追加される新しいproduct
に対しても自動的にPIVOT操作が適用されます。 -
複数の集計関数を使用するPIVOT操作の例:
SELECT * FROM ( SELECT category, product, sales FROM sales_table ) AS source_table PIVOT ( SUM(sales) AS TotalSales, AVG(sales) AS AverageSales FOR product IN ([Product A], [Product B], [Product C]) ) AS pivot_table;
上記の例では、
sales_table
というテーブルからproduct
ごとにsales
の合計値と平均値を計算して列に変換しています。
これらは一部のPIVOT操作の例です。実際の使用に応じて、さまざまな方法でPIVOTを使用することができます。