我有一个表A,其列为
我想通过遵循以下逻辑来更新列 GROUP
如果type = 1
然后将组列更新为常量,请说'10'
直到下次找到'1'
为止。
如果下次找到'1'
,则将组更新为'11'
,依此类推...
请在下面找到示例供参考
示例
任何人都可以帮助查询。
预先感谢
答案 0 :(得分:0)
您可以使用累积方法:
update a
set group = (
with my_cte as (
select a.*,
sum(case when type = 1 then 1 else 0 end) over (order by id) as new_group
from a;
)
select new_group from my_cte where a.id = my_cte.id
);
答案 1 :(得分:0)
您可以使用相关子查询:
update t
set group = (select count(*) + 9
from t t2
where t2.id <= t.id and t2.type = 1
) ;