我想连续生成 2 列和批处理的数字

I want to generate continuously number by 2 column and batch wise

我想用 2 列的组合连续生成数字,批量大小为 5。有人可以帮助解决这个问题吗?

你可以使用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;

采用@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