Как сгруппировать записи одинаково, используя SQL 2005 - PullRequest
0 голосов
/ 26 февраля 2019

Может ли кто-нибудь помочь вычислить вывод этой записи с помощью 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

Ответы [ 2 ]

0 голосов
/ 26 февраля 2019

вариант использования, когда

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
0 голосов
/ 26 февраля 2019

Если у вас есть 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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...