SQL SELECT avec DISTINCT sur plusieurs colonnes

author
2 minutes, 13 seconds Read

Description

Des champs multiples peuvent également être ajoutés avec la clause DISTINCT. DISTINCT éliminera les lignes où tous les champs sélectionnés sont identiques.

Voici une requête simple sur certaines colonnes sélectionnées dans la table des commandes où agent_code=’A002′

Table échantillon : commandes

Code SQL:

SELECT agent_code, ord_amount, cust_code, ord_numFROM orders WHERE agent_code='A002';

Sortie:

L’image ci-dessus montre que le même agent_code, ord_amount et cust_code apparaît plus d’une fois dans la table des commandes.

Exemple : select with distinct on two columns

Pour obtenir les lignes identiques (basées sur deux colonnes agent_code et ord_amount) une fois dans la table des commandes ,l’instruction sql suivante peut être utilisée :

Code SQL:

SELECT distinct agent_code,ord_amountFROM orders WHERE agent_code='A002';

Sortie :

Présentation imagée de la requête ci-dessus :

Exemple : select with distinct on three columns

Pour obtenir les lignes identiques (basées sur trois colonnes agent_code, ord_amount et cust_code) une fois à partir de la table ‘orders’ ,on peut utiliser l’instruction sql suivante :

Code SQL:

 SELECT distinct agent_code, ord_amount,cust_code FROM orders WHERE agent_code='A002';

Sortie:

Présentation imagée de la requête ci-dessus :

Exemple : select with distinct on all columns of the first query

Pour obtenir les lignes identiques (sur quatre colonnes agent_code, ord_amount, cust_code et ord_num) une fois à partir de la table ‘orders’ ,l’instruction sql suivante peut être utilisée :

select distinct agent_code,ord_amount,cust_code,ord_num from orders WHERE agent_code='A002';

Sortie:

Dans la sortie ci-dessus, toutes les lignes dont le code_agent est ‘A002’ ont été retournées parce qu’il n’y a pas de lignes identiques sur code_agent, ord_amount, cust_code et ord_num. Voir la présentation suivante :

Présentation imagée de la requête ci-dessus :

Sélection avec distinct sur plusieurs colonnes et clause order by

Vous pouvez utiliser une clause order by dans l’instruction select avec distinct sur plusieurs colonnes. Voici un exemple :

 SELECT distinct agent_code,ord_amount FROM orders WHERE agent_code='A002' order by ord_amount;

Sortie:

Fonction count() et select avec distinct sur plusieurs colonnes

Vous pouvez utiliser la fonction count() dans une instruction select avec distinct sur plusieurs colonnes pour compter les lignes distinctes. Voici un exemple :

 select count(*) from ( SELECT distinct agent_code, ord_amount,cust_code FROM orders WHERE agent_code='A002');

Sortie:

Les sorties de ladite instruction SQL présentée ici sont prises en utilisant Oracle Database 10g Express Edition.

Similar Posts

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.