基于前一行计算表的SQL查询



我需要一个查询转换表从选项卡a表B:我使用了像Lag这样的窗口功能,但它没有帮助表1:

tbody> <<tr>
Concat_date_hour 类型 Next_Movement
2021092414D1692363
2021092415D0149
2021092415D0-56
2021092415D0-131
2021092415D0-79

由于源表中缺少排序列,因此将动态创建它。查询的其他部分依赖于rn任意排序列。

select Concat_date_hour, Type,
--rn, Value, Next_Movement, 
rt - Next_Movement actual, rt [new value]
from (
select *, sum(Value + Next_Movement) over (partition by Type order by Concat_date_hour, rn) rt
from (
select  *, row_number() over(partition by Type, Concat_date_hour order by Concat_date_hour) rn
from tbl ) t
) t
order by Type, Concat_date_hour, rn;

db<>fiddle请注意,原始示例数据中添加了额外的行。

相关内容

  • 没有找到相关文章

最新更新