我需要一个查询转换表从选项卡a表B:我使用了像Lag这样的窗口功能,但它没有帮助表1:
Concat_date_hour | 类型 | 值 | Next_Movement | 2021092414 | D | 16923 | 63 |
---|---|---|---|
2021092415 | D | 0 | 149 |
2021092415 | D | 0 | -56 |
2021092415 | D | 0 | -131 |
2021092415 | D | 0 | -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请注意,原始示例数据中添加了额外的行。