LAG函數實現環比

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 

如圖:函數

 

固然還有更直觀的寫法spa

SELECT Top 1000000  年, 季度, 年月 ,SUM(金額本位幣)  金額  ,LAG(SUM(金額本位幣),1,0)OVER(ORDER BY  年月)  環比金額
FROM (
SELECT *  FROM [dbo].[T_output]
) cb_view   

GROUP BY 年, 季度, 年月

 其實會發現下面的寫法和這裏的寫法獲取的結果同樣.net

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 年,可是結果都是同樣的。code

 

參考:blog

https://blog.csdn.net/mango_love/article/details/84067911it

SQL SERVER中LEAD和LAG函數

https://blog.csdn.net/leewhoee/article/details/20264653

相關文章
相關標籤/搜索