PostgreSQL DISTINCT
nøkkelordet brukes i forbindelse med SELECT-setningen til å eliminere alle like poster og henter bare unike poster
Det kan være en situasjon når du har. flere like poster i en tabell. Mens hente slike poster, gjør det mer fornuftig å hente bare unike poster i stedet for å hente like poster
Syntax.
Den grunnleggende syntaks av nøkkelordet DISTINCT å eliminere like poster er som følger:
SELECT DISTINCT kolonne 1, COLUMN2, ..... columnNFROM table_nameWHERE [betingelse]
Eksempel:
Tenk bordet selskapet har poster som følger:
# select * fra selskapet; id | navn | alder | adresse | lønn ---- + ------- + ----- + ----------- + -------- 1 | Paul | 32 | California | 20000 2 | Allen | 25 | Texas | 15000 3 | Teddy | 23 | Norge | 20000 4 | Mark | 25 | Rich-Mond | 65000 5 | David | 27 | Texas | 85000 6 | Kim | 22 | Sør-Hall | 45000 7 | James | 24 | Houston | 10000 (7 rader)
La oss legge to flere poster til denne tabellen som følger:
INSERT INTO COMPANY (ID, navn, alder, adresse, lønn) VERDIER (8, 'Paul', 32, "California" , 20000,00); INSERT INTO COMPANY (ID, navn, alder, adresse, lønn) VALUES (9, 'Allen', 25 'Texas', 15000,00);
nå postene i selskapet bord vil være:
id | navn | alder | adresse | lønn ---- + ------- + ----- + ------------ + -------- 1 | Paul | 32 | California | 20000 2 | Allen | 25 | Texas | 15000 3 | Teddy | 23 | Norge | 20000 4 | Mark | 25 | Rich-Mond | 65000 5 | David | 27 | Texas | 85000 6 | Kim | 22 | Sør-Hall | 45000 7 | James | 24 | Houston | 10000 8 | Paul | 32 | California | 20000 9 | Allen | 25 | Texas | 15000 (9 rader)
Først, la oss se hvordan følgende SELECT spørring returnerer duplisere lønn poster:
testdb = # SELECT navn FROM COMPANY;
Dette vil gi følgende resultat:
name-- ----- Paul Allen Teddy Mark David Kim James Paul Allen (9 p)
nå, la oss bruke DISTINCT
søkeord med ovennevnte SELECT spørringen og se resultatet:
testdb = # SELECT DISTINCT navn fra selskap;
Dette vil gi følgende resultat hvor vi ikke har noen duplikatpost:
navn ------- Teddy Paul Mark David Allen Kim James (7 p)