Tôi gặp sự cố khi sử dụng RANK()
trong SQL Server.
Đây là mã của tôi:
SELECT contendernum,
totals,
RANK() OVER (PARTITION BY ContenderNum ORDER BY totals ASC) AS xRank
FROM (
SELECT ContenderNum,
SUM(Criteria1+Criteria2+Criteria3+Criteria4) AS totals
FROM Cat1GroupImpersonation
GROUP BY ContenderNum
) AS a
Kết quả cho truy vấn đó là:
contendernum totals xRank
1 196 1
2 181 1
3 192 1
4 181 1
5 179 1
Kết quả mong muốn của tôi là:
contendernum totals xRank
1 196 1
2 181 3
3 192 2
4 181 3
5 179 4
Tôi muốn xếp hạng kết quả dựa trên totals
. Nếu có cùng giá trị như 181
, sau đó hai số sẽ có cùng xRank
.