SQL select premiers enregistrements de lignes par colonne spécifique
Je me rends compte de mon titre probablement ne marche pas expliquer ma situation très bien, mais honnêtement, je n'ai aucune idée de comment ce mot.
Je suis à l'aide de SQL pour accéder à une base de données DB2.
À l'aide de ma capture d'écran image 1 ci-dessous comme référence:
la colonne 1 a trois cas de "U11124", avec trois différentes descriptions (colonne 2)
Je voudrais que cette requête renvoie la première occurrence de "U11124" et sa description, mais aussi des enregistrements uniques pour les autres lignes. image 2 montre mon résultat souhaité.
image 1
image 2
----- EDIT ----
à répondre à certaines des questions /messages:
techniquement, il n'a pas besoin d'être le premier , juste un seul de ces dossiers. le problème est que nous avons trois descriptions, et un seul doit être montré, je me suis dit maintenant qu'il n'est pas question que l'un.
Comment décidez-vous qui ligne pour le garder?
OriginalL'auteur Adam | 2011-02-03
Vous devez vous connecter pour publier un commentaire.
Ouais, vous voulez probablement MIN en fait.
+1. Pourrait être de MAX ou MIN si le désir est par ordre alphabétique lors de la définition de l'OP de l'exigence relative à la "première".
D'ABORD peut-être pas pris en charge sur toutes les bases de données, bien que...
OriginalL'auteur chahuistle
Dans SQL Server:
Cette méthode a un avantage par rapport à un simple groupe, en ce qu'elle fonctionnera aussi quand il n'y a plus de deux colonnes dans le tableau.
+1 Oui, il va, selon la version. ref ce post: stackoverflow.com/questions/4879832/conditional-db2-sql-query/...
Dans votre post, vous avez une virgule après "ligne" dans votre sous-sélection. Cela a provoqué une erreur dans ma requête. Suppression de la virgule fixe le problème.
Fixe, merci @Nick.
OriginalL'auteur Blorgbeard
SELECT STVNST,FIRST(STDESC) from table group by STVNST
COMMANDE PAR what_you_want_firstEn ce qui SGBDR est d'ABORD pris en charge?
OriginalL'auteur Byron Whitlock
Tout ce que vous devez faire est d'utiliser GROUP BY.
Vous dites que vous voulez la première instance de la STDESC de la colonne? Eh bien, vous ne pouvez pas guarntee l'ordre des lignes sans une autre colonne, cependant, si vous souhaitez commander par la plus ordonnée de la valeur à la suivante suffit:
OriginalL'auteur m.edmondson