我有一組數據用於存儲員工及其在一段時間(一個月內)的收入。這些數據還存儲多個站點,員工可以爲每個站點分配收入。我正在嘗試爲數據添加排名,以便每個員工根據每個網站的收入排名。對於多個條件的SQL排名()
示例數據
EmpId Takings SiteID
1 150.00 1
1 0.00 2
2 0.00 1
2 100.00 2
3 100.00 1
3 1100.00 2
我曾嘗試下面的查詢,但這隻讓我排了兩個:
SELECT EmpId,Takings,SiteID, RANK() OVER (PARTITION BY EmpId ORDER BY Takings DESC) AS [Rank]
FROM #test
這給了我下面的結果集:
EmpId Takings SiteID Rank
1 150.00 1 1
1 0.00 2 2
2 100.00 2 1
2 0.00 1 2
3 1100.00 2 1
3 100.00 1 2
我在期待以下結果集:
EmpId Takings SiteID Rank
1 150.00 1 1
1 0.00 2 3
2 100.00 2 2
2 0.00 1 3
3 1100.00 2 1
3 100.00 1 2
如果我修改分區以包含SiteId,那麼我得到所有員工的等級1。
我在這裏錯過了什麼,我相信這應該是一個簡單的查詢,但它現在正在殺死我。
謝謝
正如在問題中,員工需要按每個網站的收入進行排名。有兩個等級1,因爲有多個網站,每個網站應該有一個等級1 – Stuart1044