Ich würde gerne die verschiedenen Möglichkeiten finden, ein echtes Leben Problem zu lösen Ich hatte: Stellen Sie sich einen Wettbewerb, oder ein Spiel, während der die Benutzer sammeln Punkte. Sie müssen eine Abfrage erstellen, um die Liste der Benutzer mit den besten "n" Werten anzuzeigen.SQL-Abfrage, um die besten "n" Punkte aus einer Liste zu bekommen
Ich mache ein Beispiel zur Klärung. Lassen Sie uns sagen, dass dies die Tabelle Benutzer ist, wobei die Punkte verdient:
UserId - Points
1 - 100
2 - 75
3 - 50
4 - 50
5 - 50
6 - 25
Wenn ich die Top-3-Scores wollen, wird das Ergebnis sein: kann
UserId - Points
1 - 100
2 - 75
3 - 50
4 - 50
5 - 50
Dies in einer Ansicht oder ein realisiert werden gespeicherte Prozedur, wie Sie möchten. Meine Zieldatenbank ist Sql Server. Eigentlich habe ich das gelöst, aber ich denke, es gibt andere Wege, das Ergebnis zu erreichen ... schneller oder effizienter als meins.
Ich habe ein ähnliches Problem und versuchte MAX zu verwenden und dann las ich dein antworte und erinnerst dich an DENSE_RANK. Sparte mir viel Zeit. – DataGirl