Je voudrais trouver les différentes façons de résoudre un problème de la vie réelle que j'avais: imaginez-vous avoir un concours, ou un jeu, au cours duquel les utilisateurs collectent points. Vous devez créer une requête pour afficher la liste des utilisateurs ayant les meilleurs scores "n". Je fais un exemple pour clarifier. Disons que c'est la table des utilisateurs, avec les points gagnés:Requête SQL pour obtenir les meilleurs scores "n" d'une liste
UserId - Points
1 - 100
2 - 75
3 - 50
4 - 50
5 - 50
6 - 25
Si je veux que les 3 meilleurs scores, le résultat sera:
UserId - Points
1 - 100
2 - 75
3 - 50
4 - 50
5 - 50
Cela peut être réalisé en une vue ou un procédure stockée, comme vous le souhaitez. Mon cible db est Sql Server. En fait, j'ai résolu cela, mais je pense qu'il existe différentes façons d'obtenir le résultat ... plus rapide ou plus efficace que le mien.
J'ai un problème similaire et essayait d'utiliser MAX, puis j'ai lu votre répondre et mémorisé DENSE_RANK. M'a sauvé beaucoup de temps. – DataGirl