T-SQL SELECT DISTINCT & ROW_NUMBER() SUR la Commande de Problème
Je suis en train de sélectionner des lignes à partir d'une vue à l'aide de la fonction ROW_NUMBER() OVER pour la pagination. Quand je suis passé à la COMMANDE PAR champ, de SMALLDATETIME d'INT j'ai commencé à obtenir des résultats étranges:
SELECT RowId, Title, HitCount FROM
( SELECT DISTINCT Title, HitCount, ROW_NUMBER() OVER(ORDER BY HitCount DESC) AS RowId FROM ou_v_Articles T ) AS Temp
WHERE RowId BETWEEN 1 AND 5
Cette requête retourne:
RowId | Title | HitCount
=======================
4 --- 9
1 --- 43
3 --- 11
2 --- 13
5 --- 0
Les résultats ne sont évidemment pas dans le bon ordre. Je ne suis pas sûr de ce que le problème est ici, mais quand je l'ai enlevé DISTINCTES il leur ordonne correctement.
Grâce.
OriginalL'auteur Joel | 2010-02-19
Vous devez vous connecter pour publier un commentaire.
Est le RowId valeur que vous obtenez le bon? Peut-être vous avez juste besoin d'un ORDRE PAR RowId la clause where de la requête externe?
OriginalL'auteur Philip Kelley
L'application DISTINCTE pour une liste de colonne contenant la fonction ROW_NUMBER() sera toujours, chaque rangée étant distinctes, comme il y en a un ROW_NUMBER par ligne.
OriginalL'auteur Mitch Wheat
Avez-vous essayé tout à l'aide d'une commande par sur la sélection externe et la suppression de la clause OVER?
OriginalL'auteur jwwishart