BigQueryでPIVOT
PIVOT
縦持ちテーブルから横持テーブルへ
例えば下記図のような縦持ちテーブルがあるとします
上記を横持テーブルにすると下記図のようになります
縦持ち、横持ちの表現になれない方もいるかもしれませんが
これはExcelでいうところのピポッドテーブルのそれですね。
PIVOTのわかりやすい説明サイトはコチラ
サンプルSQL
SELECT
num_year,q_1,q_2,q_3,q_4,
FROM
(
SELECT
num_year,
CONCAT("q_",num_quarter) AS q_num,
SUM(revenue) AS sum_rev,
FROM
(
SELECT
revenue,
EXTRACT(YEAR FROM date_time) AS num_year,
EXTRACT(QUARTER FROM date_time) AS num_quarter,
FROM sales
)
GROUP BY 1,2
)
PIVOT (
MAX(sum_rev)
FOR q_num IN ("q_1","q_2","q_3","q_4")
)
おまけ
quarterごとの増減をSIGN関数を使って判定する
SIGN関数はvalueが正の値か、負の値かを判断し
正の値の場合は1、0の場合は0、負の値の場合は-1
を返します
ここから先は
1,263字
¥ 100
この記事が気に入ったらチップで応援してみませんか?