我想找到解決現實生活問題的不同方式:想象要舉辦比賽或遊戲,期間用戶收集點。您必須建立查詢以顯示具有最佳「n」分數的用戶列表。SQL查詢從列表中獲得最高的「n」分數
我正在做一個例子來澄清。比方說,這是用戶表,用點獲得:
UserId - Points
1 - 100
2 - 75
3 - 50
4 - 50
5 - 50
6 - 25
如果我想的前3名的分數,其結果將是:
UserId - Points
1 - 100
2 - 75
3 - 50
4 - 50
5 - 50
這可以在視圖或實現存儲過程,只要你想。我的目標數據庫是Sql Server。其實我解決了這個問題,但我認爲有不同的方法來獲得結果...比我的更快或更有效率。
我有一個類似的問題,並試圖使用MAX,然後我讀你的回答並記住了DENSE_RANK。爲我節省了很多時間。 – DataGirl 2012-06-21 20:49:47