PostgreSQL - Mot clé DISTINCT
Le PostgreSQL DISTINCT Le mot clé est utilisé en conjonction avec l'instruction SELECT pour éliminer tous les enregistrements en double et récupérer uniquement les enregistrements uniques.
Il peut y avoir une situation où vous avez plusieurs enregistrements en double dans une table. Lors de la récupération de tels enregistrements, il est plus judicieux de récupérer uniquement les enregistrements uniques au lieu de récupérer les enregistrements en double.
Syntaxe
La syntaxe de base du mot clé DISTINCT pour éliminer les enregistrements en double est la suivante:
SELECT DISTINCT column1, column2,.....columnN
FROM table_name
WHERE [condition]
Exemple
Considérez la table COMPANY ayant des enregistrements comme suit -
# 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)
Ajoutons deux autres enregistrements à ce tableau comme suit -
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 );
Désormais, les enregistrements de la table COMPANY seraient -
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)
Tout d'abord, voyons comment la requête SELECT suivante renvoie des enregistrements de salaire en double -
testdb=# SELECT name FROM COMPANY;
Cela produirait le résultat suivant -
name
-------
Paul
Allen
Teddy
Mark
David
Kim
James
Paul
Allen
(9 rows)
Maintenant, utilisons DISTINCT mot-clé avec la requête SELECT ci-dessus et voir le résultat -
testdb=# SELECT DISTINCT name FROM COMPANY;
Cela produirait le résultat suivant où nous n'avons aucune entrée en double -
name
-------
Teddy
Paul
Mark
David
Allen
Kim
James
(7 rows)