with 年合計 AS(
SELECT 部門名
,年月
,sum(金額) over(PARTITION BY 部門名,年月) as 金額
,sum(金額) over(PARTITION BY 部門名 order by 部門名,年月 rows between 11 preceding and current row) as 年合計金額
,avg(金額) over(PARTITION BY 部門名 order by 部門名,年月 rows between 11 preceding and current row) as 年平均金額
,count(*) over(PARTITION BY 部門名 order by 部門名,年月 rows between 11 preceding and current row) as 月数
)
-- 12ヶ月分のデータがあるもののみ表示対象とする
select *
from 年合計
where 12 = 月数
PARTITION BY:グループ化の範囲
ORDER BY:ROWSを使うための順番指定
ROWS BETWEEN a AND B: a ~ b までの範囲を対象とする
current row:現在の行