You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL指定分区排名问题:如何让同Round的行获相同序号

解决同Round分组生成相同rotasi序号的问题

你当前使用ROW_NUMBER()函数无法实现需求,因为该函数会为分区内的每一行生成唯一递增的序号——即使Round值相同,只要行的其他字段(比如Platform)不同,序号就会依次递增。

要让相同Round的行拥有相同的rotasi值,应该使用DENSE_RANK()函数,它会为分区内相同排序键的行分配相同的序号,且序号是连续无空缺的。

修改后的查询语句

SELECT *, 
    DENSE_RANK() OVER (
        PARTITION BY YEAR(Date), MONTH(Date), [CC Receiver], Name, Division, [Old Block] 
        ORDER BY Round
    ) AS rotasi
FROM CTE1; -- 注:你的建表语句是CTE1,原插入/查询语句写为CTE,需修正表名一致

结果说明

执行上述语句后,分区内所有Round为45的行rotasi都会是1,Round为46的行rotasi都会是2,完全符合你的预期。

内容的提问来源于stack exchange,提问作者Fachry Dzaky

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 01:32:33