
SQL分析データ準備と基礎統計#03:集約変数
変数を作成する典型的なパターンの1つとして時系列のデータを集約する場合があります。一定の期間単位(月、年、セッション)における指標を集約し、それを変数としてそのまま使う場合もありますし、その後2期間における比較を行う場合もありますが、いずれにしてもまずは集約します。以下に代表例を示します。例として月別の売上金額を集約することを考えます。
sum: 売上金額合計月
avg: 売上金額平均月
min: 売上金額最小月
max: 売上金額最大月
count: 売上回数月
stddev_pop: 売上金額標準偏差月
stddev_pop / avg: 売上金額変動係数月
また、2つの売上カテゴリーがあるとして、これを織り交ぜて変数を作る場合の例だとこんな感じになります。
カテゴリーA割合: sum(case when カテゴリー='A' then 売上金額 else 0 end) / nullifzero(cast(sum(売上金額金額) as float))
カテゴリーBの売上を8がけに: sum(case when カテゴリー='A' then 売上金額 else 0.8*売上金額 end)
それぞれを横持(カテゴリーA): max(case when カテゴリー='A' then 売上金額 else 0 end)
それぞれを横持(カテゴリーB): max(case when カテゴリー='B' then 売上金額 else 0 end)
SQLにすると以下のような感じになります。
///