select *,LAG(金額,1,0)OVER(ORDER BY 年月) 環比金額 from( SELECT Top 1000000 年, 季度, 年月 ,SUM(金額本位幣) 金額 FROM ( SELECT * FROM [dbo].[T_output] ) cb_view GROUP BY 年, 季度, 年月 order by 年,季度, 年月 ) BB
如圖:
當然還有更直觀的寫法
SELECT Top 1000000 年, 季度, 年月 ,SUM(金額本位幣) 金額 ,LAG(SUM(金額本位幣),1,0)OVER(ORDER BY 年月) 環比金額 FROM ( SELECT * FROM [dbo].[T_output] ) cb_view GROUP BY 年, 季度, 年月
其實會發現下面的寫法和這里的寫法獲取的結果一樣
SELECT Top 1000000 年, 季度, 年月 ,SUM(金額本位幣) 金額 ,LAG(SUM(金額本位幣),1,0)OVER(ORDER BY 年) 環比金額 FROM ( SELECT * FROM [dbo].[T_output] ) cb_view GROUP BY 年, 季度, 年月
一個是ORDER BY 年月 一個是ORDER BY 年,但是結果都是一樣的。
參考:
https://blog.csdn.net/mango_love/article/details/84067911
SQL SERVER中LEAD和LAG函數
https://blog.csdn.net/leewhoee/article/details/20264653