De Requête de SQL Server pour le Rang (RowNumber) et les groupes
J'ai une table qui a des colonnes: l'Utilisateur, la Catégorie, la Valeur
Et je veux faire une requête qui va me donner un classement de tous les utilisateurs en fonction de la valeur, mais de réinitialisation pour la catégorie.
Exemple:
user1 CategoryA 10
user2 CategoryA 11
user3 CategoryA 9
user4 CategoryB 3
user1 CategoryB 11
la requête serait de retour:
Rank User Category
1 user2 CategoryA
2 user1 CategoryA
3 user3 CategoryA
1 user1 CategoryB
2 user4 CategoryB
Des idées?
Je écrire la requête et à préciser la Catégorie, Cela fonctionne mais je dois écrire des boucles et très lent.
- Ma Requête: SELECT Rank() over (Order by de la Valeur, de l'Utilisateur, Catégorie) les grades, Catégorie, l'Utilisateur DE la table Table1 Groupe Par l'Utilisateur, la Catégorie, la Valeur de la Commande par rangs de l'asc
Vous devez vous connecter pour publier un commentaire.
Utiliser "Partition" dans la fonction de classement Au COURS de la clause
Si la Valeur peut avoir des doublons, alors vous devez décider si vous voulez à "compter" les dupes (équivalent RANG) ou non (équivalent à DENSE_RANK, merci @shannon)
Ordinaire Rang:
"Dense" Rang: