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