PostgreSQL - HAR Clause

HAR klausul tillater oss å plukke ut bestemte rader der funksjonen resultat møter noen tilstand

WHERE-leddet steder vilkår på de valgte kolonnene, mens HAVING steder forholdene på grupper opprettet. av GROUP BY-leddet

Syntax.

Følgende er posisjonen til HAR klausul i en SELECT spørring:
SELECTFROMWHEREGROUP BYHAVINGORDER BY

HAR klausul må følge GROUP BY-ledd i en spørring, og må også forut ORDER BY-leddet hvis det brukes. Det følgende er syntaksen til SELECT-setning, inkludert HAR klausul:
Velg COLUMN1, column2FROM table1, table2WHERE [vilkår] GROUP BY COLUMN1, column2HAVING [vilkår] ORDER BY COLUMN1, COLUMN2
Eksempel:
< p> Tenk bordet COMPANY ha poster som følger:
# select * from COMPANY; id | Navn | alder | adressere | 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 p)

Følgende er et eksempel, som vil vise rekord for hvilket navn som teller er mindre enn 2:
testdb- # SELECT NAVN FRA SELSKAPET GROUP BY navn HAR count (navn) < 2;

Dette vil gi følgende resultat:
navn ------- Teddy Paul Mark David Allen Kim James (7 p)

Nå, la oss lage tre flere poster i COMPANY tabellen ved hjelp av Følgende INSERT-setninger:
INSERT INTO selskapsverdiene (8, 'Paul', 24 'Houston', 20000.00); INSERT INTO selskapsverdiene (9, 'James', 44 'Norge', 5000.00); INSERT INTO COMPANY VALUES (10, 'James', 45 'Texas', 5000.00);

Nå har vårt bord følgende poster med like navn:
id | Navn | alder | adressere | 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 | 24 | Houston | 20000 9 | James | 44 | Norge | 5000 10 | James | 45 | Texas | 5000 (10 p)

Følgende er et eksempel, som vil vise rekord for hvilket navn som teller er større enn 1:
testdb- # SELECT NAVN FRA SELSKAPET GROUP BY navn HAR count (navn) > 1;

Dette vil gi følgende resultat:
navn ------- Paul James (2 p)



Previous:
Next Page: