SQL:WINDOW句で複数条件のPartition by Order byを使って移動平均、移動合計を表現する Union all は使わない

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:現在の行

SQL
AD
味方出版