SQL基于另一列的增量



我有一个表,我需要分配一个数字序列,然后根据另一列中的值将数字序列重新启动为1。

这是我的表:

你可以这样做:

select x.*, row_number() over(partition by g order by date) as instance
from (select t.*, sum(indicator) over(order by date) as g from t) x

结果:

Date        Name   Indicator  g  instance 
----------- ------ ---------- -- -------- 
2022-01-12  Test1  1          1  1        
2022-02-12  Test2  null       1  2        
2022-03-12  Test3  null       1  3        
2022-04-12  Test4  null       1  4        
2022-05-12  Test5  1          2  1        
2022-06-12  Test6  null       2  2        
2022-07-12  Test7  1          3  1        
2022-08-12  Test8  null       3  2        

参见运行示例:db<>fiddle。

相关内容

  • 没有找到相关文章

最新更新