Я хочу, чтобы генерировать число непрерывно по 2 колонки и партии - PullRequest
0 голосов
/ 20 ноября 2018

Я хочу генерировать непрерывно число с комбинацией из 2 столбцов и размером пакета 5. Любой может помочь решить эту проблему?

This is my input and desired output is given:

Ответы [ 2 ]

0 голосов
/ 20 ноября 2018

Принятие ответа @ GordonLinoff ...

SELECT
    name,
    rank, 
    DENSE_RANK() OVER (ORDER BY name DESC, Rank, ((seqnum - 1) / 5))  AS rno   
FROM
(
    SELECT
        *,
        ROW_NUMBER() OVER (PARTITION BY name, rank ORDER BY (SELECT null))   AS seqnum
    FROM
        yourTable
)
    sequenced
ORDER BY
    3
0 голосов
/ 20 ноября 2018

Вы можете использовать row_number() и арифметику:

select name, rank, 
       ((seqnum - 1) / 5) + 1 as rno
from (select t.*,
              row_number() as (partition by name, rank order by (select null)) as seqnum
      from t
     ) t
order by seqnum;
...