如何使用SQL 2005平均分组记录

问题描述 投票:0回答:2

有些人可以使用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
sql sql-server-2005
2个回答
0
投票

如果你有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;

0
投票

用例何时

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
© www.soinside.com 2019 - 2024. All rights reserved.