Row_number & 在 SQL 服务器中分区
Row_number & Partition By in SQL Server
我被另一列的一个列组的行号卡住了。
这是我的数据集
PR_Cmd PR_Expd
--------------------------
CVP909104 LVP1ET03904305
CVP909105 LVP1ET03904306
CVP909105 LVP1ET03904306
CVP909105 LVP1ET03904306
CVP909105 LVP1ET03904306
CVP909105 LVP1ET03904306
CVP909105 LVP1ET03904307
CVP909106 LVP1ET03904308
我想得到什么:
PR_Cmd PR_Expd Expd_Number
-------------------------------------------
CVP909104 LVP1ET03904305 1
CVP909105 LVP1ET03904306 1
CVP909105 LVP1ET03904306 1
CVP909105 LVP1ET03904306 2
CVP909105 LVP1ET03904307 3
CVP909106 LVP1ET03904308 1
你似乎想要的是dense_rank()
。
dense_rank() over (partition by pr_cmd order by pr_expd)
这将重新开始对 pr_cmd
的每个值进行编号。
我被另一列的一个列组的行号卡住了。
这是我的数据集
PR_Cmd PR_Expd
--------------------------
CVP909104 LVP1ET03904305
CVP909105 LVP1ET03904306
CVP909105 LVP1ET03904306
CVP909105 LVP1ET03904306
CVP909105 LVP1ET03904306
CVP909105 LVP1ET03904306
CVP909105 LVP1ET03904307
CVP909106 LVP1ET03904308
我想得到什么:
PR_Cmd PR_Expd Expd_Number
-------------------------------------------
CVP909104 LVP1ET03904305 1
CVP909105 LVP1ET03904306 1
CVP909105 LVP1ET03904306 1
CVP909105 LVP1ET03904306 2
CVP909105 LVP1ET03904307 3
CVP909106 LVP1ET03904308 1
你似乎想要的是dense_rank()
。
dense_rank() over (partition by pr_cmd order by pr_expd)
这将重新开始对 pr_cmd
的每个值进行编号。