Select distinct ligne avec max date à partir de SQL Server le tableau?
J'ai besoin d'obtenir un ensemble d'enregistrements distincts pour une table avec le max sur tous les duplciates.
ex:
Select distinct a,b,c, Max(OrderDate) as maxDate
From ABC
Group By a,b,c
Le problème est que je obtenir un enregistrement pour chaque date.
Ex:
aaa, bbb, ccc, Jan 1 2009
aaa, bbb, ccc, Jan 28 2009
Comment puis-je limiter ce donc je me retrouve avec seulement:
aaa, bbb, ccc Jan 28 2009
Je suppose que le problème est le groupe par et distincte de ne pas obtenir le long bien.
EDIT: Trouvé le problème qui était à l'origine du problème, les résultats de la requête ont été comme prévu, pas comme ci-dessus.
Il s'avère que c'est une autre question à l'origine du problème. Les résultats ne sont pas ce que j'attendais. Désolé.
Veuillez fermer votre question non pertinente ensuite. Merci
quelle a été la solution? ses bonnes que vous avez trouvé la solution, plus de personnes ont besoin aussi bien
Veuillez fermer votre question non pertinente ensuite. Merci
quelle a été la solution? ses bonnes que vous avez trouvé la solution, plus de personnes ont besoin aussi bien
OriginalL'auteur schooner | 2009-04-30
Vous devez vous connecter pour publier un commentaire.
Quelque chose ne va pas avec votre requête ou avec votre exemple de résultats, comme ce que vous décrivez ne devrait pas être possible. Comment au sujet de certains SQL réel, et les résultats réels?
Dans tous les cas, vous n'avez pas besoin
distinct
, puisque tous que vous sélectionnez sont vos trois colonnes groupées un un ensemble, de sorte que vous aurez, par définition, jusqu'à la fin avec toutes les différentes lignes. Je n'ai jamais essayé, peut-être, il est certains débordements lors de l'utilisation de ces deux. Avez-vous essayé de supprimer lesdistinct
? Ce qui vous a poussé à le mettre là?OriginalL'auteur Adam Robinson
Ayant un index sur
(a, b, c, orderDate)
(dans cet ordre) permettra d'améliorer grandement cette requête.En supposant qu'il existe un indice, c'est de la même efficacité que le GROUPE, mais sélectionne toutes les colonnes, pas seulement ceux qui sont utilisés dans un GROUPE PAR. La question initiale posée par un ensemble d'archives". Je pense que j'ai raté ce que l'auteur voulait dire.
Intéressant, je ne savais pas que les fonctions de classement opéré à la même efficacité que le regroupement. Est-ce parce que vous êtes à l'aide de "partition par' plutôt que 'order by'? Je n'ai jamais vu cette expression. Bon à savoir!
OriginalL'auteur Quassnoi
Si vous exécutez cette requête:
Vous devriez obtenir dos:
Votre requête fonctionnera aussi bien si quelque chose est vraiment mal ou que vous n'avez pas communiquée de manière appropriée la nature exacte de votre code.
OriginalL'auteur JoshBerke