首页 > 解决方案 > 在 SQL 中使用分区子句时为序列分配 ID

问题描述

当尝试使用 partition by 子句识别特定序列时,可以使用 row_number 标记分区中的每一行。

select *, 
       row_number() over(partition by x,y order by z desc) as rn,
from table ;

您将如何为每个分区分配一个特定的 ID(如哈希)?

标签: sqlwindow-functions

解决方案


您可以使用以下方法枚举分区dense_rank()

select t.*,
       row_number() over (partition by x, y order by z desc) as with_partition_seqnum,
       dense_rank() over (order by x, y) as partition_seqnum
from t;

推荐阅读