如何在SQL中调整运行总计计算顺序,得到正序累计余额
调整方法非常简单,你只需要修改窗口函数中ORDER BY的排序方向即可:
你现有SQL里用的是DATE desc,代表按日期倒序排列后累加,才会得到从最新记录到旧记录的累计值。想要正序的运行余额(从最早记录到最新记录累加),把排序方向改为升序asc就行。
调整后的SQL语句如下:
select id,date,amount,SUM (Amount) OVER (PARTITION BY ID ORDER BY DATE asc) AS runningbalance from sales
补充说明:绝大多数SQL方言中,ORDER BY默认就是升序排序,所以你也可以省略asc关键字,直接写ORDER BY DATE,效果完全一致。
内容的提问来源于stack exchange,提问作者beginner1234
相关产品推荐
相关产品推荐

