SQLのPIVOTを使って行データを列データに変換する完全ガイド

この記事では、SQLのPIVOT処理を使って行データを列データに変換する方法について、具体的な例とともに詳しく説明します。PIVOTを使うことで、集計やレポート作成の効率が格段に向上します。

目次

PIVOTとは

PIVOTはSQLの機能の一つであり、行データを列データに再構成する際に使用されます。特に、複数の行データを特定のキーでまとめて、列として表示したい場合に便利です。

PIVOTの基本構文

PIVOTの基本的な構文は以下のようになります。

SELECT ...
FROM ...
PIVOT (AGGREGATE_FUNCTION(column_to_aggregate)
       FOR column_to_pivot
       IN (list_of_values))

PIVOTの利点

PIVOTの主な利点は以下の3点です。

  • レポート作成が容易になる
  • 集計処理が高速化する
  • データの可視性が向上する

PIVOTの具体的な使用例

実際にPIVOTを使って行データを列データに変換する具体的な例を見てみましょう。

元のテーブル

以下は、商品の月別売上を記録したテーブル「sales」です。

商品名売上
リンゴ1月200
リンゴ2月150
バナナ1月180
テーブル名称1: 元のテーブル「sales」

PIVOTを使用した変換

上記の「sales」テーブルをPIVOTを使って月ごとに商品の売上を集計するSQL文は以下のようになります。

SELECT 商品名, [1月], [2月]
FROM
(SELECT 商品名, 月, 売上 FROM sales)
PIVOT
(SUM(売上)
FOR 月 IN ([1月], [2月]))

変換後のテーブル

上記のSQL文を実行すると、以下のようなテーブルが出力されます。

商品名1月2月
リンゴ200150
バナナ180NULL
テーブル名称2: PIVOTを使用した変換後のテーブル

まとめ

SQLのPIVOT処理を使用することで、行データを列データに効率的に変換できます。特にレポート作成や集計作業において、この機能は非常に有用です。PIVOTを使う前と使った後のデータを比較することで、その便利さがよくわかると思います。

コメント

コメントする

目次