SQLでサブクエリを使ったデータのピボットとアンピボットの方法

この記事では、SQLでサブクエリを使ったデータのピボットとアンピボットについて詳しく解説します。特に、実用的な例を交えながら、どのようにデータを効率的に変換できるのかを学びます。

目次

はじめに

SQLではデータの形状を変える操作が頻繁に行われます。その中でも「ピボット」と「アンピボット」は非常に便利なテクニックです。サブクエリと組み合わせることで、更に高度なデータ変換が可能です。

ピボットとは

ピボットとは、行データを列データに変換する処理です。これは、レポート作成や分析作業でよく用います。

基本的なピボットのSQL文

基本形は以下のようになります。

SELECT ...
FROM ...
GROUP BY ...
PIVOT ( ... );

サンプルデータ

今回用いるデータは以下の通りです。

商品ID売上
11月100
12月150
21月200
商品売上データ

サブクエリを使ったピボット

以下は、サブクエリを用いたピボットの例です。

SELECT 商品ID,
       SUM(CASE WHEN 月 = '1月' THEN 売上 ELSE 0 END) AS "1月",
       SUM(CASE WHEN 月 = '2月' THEN 売上 ELSE 0 END) AS "2月"
FROM (
       SELECT 商品ID, 月, 売上
       FROM 売上データ
     ) sub
GROUP BY 商品ID;

アンピボットとは

アンピボットは、ピボットの逆の操作であり、列データを行データに変換します。

基本的なアンピボットのSQL文

基本形は以下の通りです。

SELECT ...
FROM ...
UNPIVOT ( ... );

サブクエリを使ったアンピボット

以下は、サブクエリを用いたアンピボットの例です。

SELECT 商品ID, 月, 売上
FROM (
      SELECT 商品ID, "1月", "2月"
      FROM 売上データ
     ) sub
UNPIVOT (
         売上 FOR 月 IN ("1月", "2月")
        );

まとめ

この記事では、SQLのサブクエリを用いたピボットとアンピボットについて解説しました。サブクエリを用いることで、より複雑なデータ形状の変換が可能となります。このテクニックをマスターすることで、データ分析やレポート作成が効率的に行えます。

コメント

コメントする

目次