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 

如圖:

 

當然還有更直觀的寫法

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM