有些人可以使用SQL帮助计算此记录的输出。我想根据第N条记录对记录进行分组。以下示例均等于4。
实际记录
SO # RowNum
001 1
002 2
003 3
004 4
005 5
006 6
007 7
008 8
009 9
010 10
011 11
012 12
013 13
期望的输出
SO # RowNum Group
001 1 1
002 2 1
003 3 1
004 4 1
005 5 2
006 6 2
007 7 2
008 8 2
009 9 3
010 10 3
011 11 3
012 12 3
013 13 4
如果你有rownum
只是使用算术:
select t.*, 1 + ((rownum - 1) / 4) as grp
from t;
如果没有,你可以使用row_number()
:
select t.*, 1 + ((row_number() over (order by rownum) - 1) / 4) as grp
from t;
用例何时
select a.*,case when RowNum<=4 then 1
when RowNum<=8 then 2
when RowNum<=12 then 3
else 4 end as grp from table_name a