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

如何为SQL分区生成连续排名?现有查询结果不符预期

实现分区内连续排名的SQL解决方案

核心修改方案

若你需要在每个PayloadHeaderId分区内生成严格连续且唯一的排名(即使PayloadLineItemId存在重复值,每行也对应唯一的连续序号),只需将原查询中的DENSE_RANK()替换为ROW_NUMBER()即可:

;with partitionedGroup as
(
    SELECT 
        ROW_NUMBER() OVER (PARTITION BY PayloadHeaderId ORDER BY PayloadLineItemId ASC) as rowRank,
        *
    FROM 
        PayloadLineItems 
    WHERE 
        Synced = 0
)
select TOP 50 * FROM partitionedGroup

函数差异说明

  • ROW_NUMBER():在指定分区内,为每行分配唯一的连续整数排名,不受排序字段重复值影响,排名绝对连续且不重复。
  • DENSE_RANK():当排序字段存在重复值时,重复值会获得相同排名,后续排名不会跳号(例如:1,1,2,3),本身也属于连续排名的范畴。若你的需求是让相同PayloadLineItemId的行共享同一排名,原查询已满足要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 04:10:57