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)