回答:不确定你用的是什么数据库,如果每天的数据都是不同,可以对每一行数据按日期排序,然后关联自己互减就行with tab1 as (
select
sum_date --日期
,v_cnt --数量
,row_number() over(order by sum_date) as rn
from v_tab --你用的表
)
select t1.sum_date --当前日期
,t1.v_cnt --值
,t1.v_cnt - t2.v_cnt --计算结果
from tab1 as t1 --当前日期
left join tab1 as t2 --上一日期
on t1.rn - 1 = t2.rn
;如果只是单一日期字段,当然也可以简单点不用row_number() 的形式实现select t1.sum_date --当前日期
,t1.v_cnt --值
,t1.v_cnt - t2.v_cnt --计算结果
from v_tab as t1 --当前日期
left join v_tab as t2 --上一日期
on date_sub(t1.sum_date,interval 1 day) = t2.sum_date
;逻辑上是一样的,但更推荐用row_number()的写法
1
1
0
10
没有更多