Distinct Keyword

15 min Niveau 7

Le mot clé DISTINCT de PostgreSQL est utilisé en conjonction avec l'instruction SELECT pour éliminer tous les enregistrements en double et ne récupérer que 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 ces enregistrements, il est plus logique de ne récupérer que 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érons la table COMPANY dont les enregistrements sont les suivants :

# 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 à cette table 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 );

Maintenant, les enregistrements dans la table SOCIÉTÉ 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 donnerait le résultat suivant :

name
-------
 Paul
 Allen
 Teddy
 Mark
 David
 Kim
 James
 Paul
 Allen
(9 rows)

Maintenant, utilisons le mot clé DISTINCT avec la requête SELECT ci-dessus et voyons le résultat :

testdb=# SELECT DISTINCT name FROM COMPANY;

Cela donnerait le résultat suivant, où nous n'avons pas d'entrée en double :

name
-------
 Teddy
 Paul
 Mark
 David
 Allen
 Kim
 James
(7 rows)
logo discord

Besoin d'aide ?

Rejoignez notre communauté officielle et ne restez plus seul à bloquer sur un problème !

En savoir plus