PostgreSQL - DISTINCT-Schlüsselwort

Das PostgreSQL DISTINCT Das Schlüsselwort wird in Verbindung mit der SELECT-Anweisung verwendet, um alle doppelten Datensätze zu entfernen und nur eindeutige Datensätze abzurufen.

Es kann vorkommen, dass eine Tabelle mehrere doppelte Datensätze enthält. Beim Abrufen solcher Datensätze ist es sinnvoller, nur eindeutige Datensätze abzurufen, anstatt doppelte Datensätze abzurufen.

Syntax

Die grundlegende Syntax des DISTINCT-Schlüsselworts zum Entfernen doppelter Datensätze lautet wie folgt:

SELECT DISTINCT column1, column2,.....columnN
FROM table_name
WHERE [condition]

Beispiel

Betrachten Sie die Tabelle UNTERNEHMEN mit Aufzeichnungen wie folgt:

# 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)

Fügen wir dieser Tabelle zwei weitere Datensätze wie folgt hinzu:

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 );

Nun wären die Datensätze in der COMPANY-Tabelle -

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)

Lassen Sie uns zunächst sehen, wie die folgende SELECT-Abfrage doppelte Gehaltsdatensätze zurückgibt.

testdb=# SELECT name FROM COMPANY;

Dies würde das folgende Ergebnis erzeugen -

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

Lassen Sie uns jetzt verwenden DISTINCT Schlüsselwort mit der obigen SELECT-Abfrage und sehen Sie das Ergebnis -

testdb=# SELECT DISTINCT name FROM COMPANY;

Dies würde das folgende Ergebnis erzeugen, wenn wir keinen doppelten Eintrag haben -

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