Mot-clé DISTINCT de PostgreSQL
Dans PostgreSQL, le mot-clé DISTINCT est utilisé avec l'instruction SELECT pour supprimer les enregistrements en double et récupérer uniquement les enregistrements uniques.
Lorsqu'on travaille avec des données, il peut arriver qu'une table contienne plusieurs enregistrements en double. Lors de l'extraction de tels enregistrements, le mot-clé DISTINCT devient particulièrement pertinent, car il récupère uniquement les enregistrements uniques plutôt que les enregistrements en double.
Syntaxe
La syntaxe de base du mot-clé DISTINCT pour supprimer les enregistrements en double est la suivante :
SELECT DISTINCT column1, column2,.....columnN FROM table_name WHERE [condition]
Exemple
Créez la table COMPANY (Téléchargez le fichier SQL COMPANY), le contenu des données est le suivant :
exampledb# select * from COMPANY; id | name | age | address | salary ----+-------+-----+-----------+-------- 1 | Paul | 32 | California| 20000 2 | Allen | 25 | Texas | 15000 3 | Teddy | 23 | Norway | 20000 4 | Mark | 25 | Rich-Mond | 65000 5 | David | 27 | Texas | 85000 6 | Kim | 22 | South-Hall| 45000 7 | James | 24 | Houston | 10000 (7 rows)
Insérons deux enregistrements :
INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (8, 'Paul', 32, 'California', 20000.00 ); INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (9, 'Allen', 25, 'Texas', 15000.00 );
Maintenant, les données sont les suivantes :
id | name | age | address | salary ----+-------+-----+------------+-------- 1 | Paul | 32 | California | 20000 2 | Allen | 25 | Texas | 15000 3 | Teddy | 23 | Norway | 20000 4 | Mark | 25 | Rich-Mond | 65000 5 | David | 27 | Texas | 85000 6 | Kim | 22 | South-Hall | 45000 7 | James | 24 | Houston | 10000 8 | Paul | 32 | California | 20000 9 | Allen | 25 | Texas | 15000 (9 rows)
Ensuite, trouvons toutes les valeurs NAME dans la table COMPANY :
exampledb=# SELECT name FROM COMPANY;
Le résultat est le suivant :
name ------- Paul Allen Teddy Mark David Kim James Paul Allen (9 rows)
Utilisons maintenant la clause DISTINCT dans l'instruction SELECT :
exampledb=# SELECT DISTINCT name FROM COMPANY;
Le résultat est le suivant :
name ------- Teddy Paul Mark David Allen Kim James (7 rows)
D'après les résultats, vous pouvez voir que les données en double ont été filtrées.
Autres extensions