我有四列要排名。它们需要按员工 ID 分组,然后按订单号从低到高列出。然后当一切都井井有条时,我真的想得到城市在该顺序中的排名。如果同一名员工的同一个城市一个接一个地列出,那么我希望那些排名相同。
下表的示例如下。顺序是正确的,但排名不是我想要做的。
Name Employee_ID Order_Number City Rank
John 1 1 Boston 1
John 1 2 Boston 2
Will 2 1 Peabody 1
Will 2 2 Weston 2
Will 2 3 Newton 3
select Name, Employee_ID, Order_Number, City,
dense_rank() over(partition by Employee_ID order by Order_Number) as rank
from #Employee
我实际上想要的结果是:
Name Employee_ID Order_Number City Rank
John 1 1 Boston 1
John 1 2 Boston 1
Will 2 1 Boston 1
Will 2 2 Weston 2
Will 2 3 Newton 3
然后我最终会删除重复的城市,最终得到:
Name Employee_ID Order_Number City Rank
John 1 1 Boston 1
Will 2 1 Boston 1
Will 2 2 Weston 2
Will 2 3 Newton 3