Comment obtenir des Enregistrements Uniques basés sur plusieurs colonnes d'une table
Considérons le tableau suivant:
primaryKey id activity template creator created
1 1 3 5 x 2011-10-13
2 2 4 2 y 2011-10-15
3 2 4 7 z 2011-10-24
4 2 4 7 u 2011-10-29
À partir d'ici, je veux récupérer les enregistrements qui ont des combinaisons uniques pour id
, activity
et template
. Dans le cas où il y a deux ou plusieurs combinaisons uniques de ces champs sont existe je veux prendre le premier d'entre eux.
Comme un exemple de tableau ci-dessus, les données de la sortie que j'ai besoin est
primaryKey id activity template creator created
1 1 3 5 x 2011-10-13
2 2 4 2 y 2011-10-15
3 2 4 7 z 2011-10-24
(depuis 3 et 4, ayant la même combinaison que je veux prendre tout le dossier 3 car c'est la première occurrence)
Puis-je faire cela à l'aide d'une seule instruction SQL?
- "première" par
primaryKey
, ou parcreated
, ou par une autre logique? Les Tables n'ont pas un ordre. Can i do this using a single sql statement?
Je ne pense pas que vous le pouvez. Je pense que je peux, mais ce n'était pas la question.
Vous devez vous connecter pour publier un commentaire.
C'est pour MS SQL Server.
Mise à jour, comme je l'ai fait une petite erreur!
Je pense que cela devrait fonctionner -
Ici, d'abord distinctes est d'obtenir sur les colonnes dans la requête interne par groupe, par. Puis le min de la clé primaire de chaque enregistrement est utilisé pour obtenir toutes les colonnes de la requête externe.