如何像以下示例一样重置计数器(我需要在“我需要生成的计数器”列中生成计数器?
答案 0 :(得分:0)
好像每个大于1的值都会重置计数器,对吗?
如果是这样,您可以根据在当前行(包括)之前出现值> 1的次数,首先分配一个组号。因此,第1到11行将是组0,第12和13行将是组1,依此类推。
然后,您可以应用row_number窗口函数来生成按该组划分的编号:
2.5.0
答案 1 :(得分:0)
这是一个替代示例,该示例使用解析函数而不是标量子查询来生成组:
with grp as (
select t.*
, sum(case gapnoofdays when 1 then 0 else 1 end) over (partition by customer_id order by urn) grp
from your_table t
)
select grp.*
, row_number() over (partition by customer_id, grp order by urn) n
from grp;