La clausola di PostgreSQL è strettamente utilizzata in combinazione con il gruppo per istruzione, limitando il risultato solo alle righe che soddisfano la condizione della clausola.
Uso di base
La sintassi più elementare per la clausola è:
Seleziona Col_list dal gruppo Table_Name di Col con condizione;Nella sintassi espressa sopra, la clausola di avere filtra i gruppi e quindi il gruppo per clausole li ordina dalla colonna specificata.
Ciò significa che solo le colonne che soddisfano la condizione della clausola di avere saranno nel gruppo per clausola.
La clausola di avere ha una priorità inferiore rispetto ad altre clausole come Select, dove e gruppo di.
Se è necessario includere un ordine per istruzione nella query, assicurati di aggiungerla dopo la clausola di avere perché ha una priorità inferiore rispetto alla clausola.
Esempio 1
Illustriamo come usare la clausola di avere usando un esempio del mondo reale. Per questa illustrazione, useremo il database di esempio Sakila.
Seleziona film_id, titolo, rilascio_year, lunghezza dal gruppo di pellicola di Film_id con somma (lunghezza)> 150 Limite 10;Nell'esempio sopra, selezioniamo le colonne specificate dalla tabella del film in cui la somma della lunghezza di ciascun film_id è maggiore di 150.
La query sopra dovrebbe restituire solo i film in cui la lunghezza era maggiore di 150 raggruppata da Film_id.
Ecco un esempio di esempio:
Esempio 2
Possiamo anche usare la clausola di avere con altre funzioni aggregate. Un esempio sono le funzioni Min e Max.
Selezionare Payment_id, customer_id, importo dal gruppo di pagamento di Payment_id con massimo (importo)> 10 limite 5;La query sopra dovrebbe restituire i valori in cui l'importo è maggiore di 10.
Esempio 3
Puoi anche usare la clausola con la clausola Where. Per esempio:
Seleziona Payment_id,In questo caso, raggruppiamo per payment_id tutti i record il cui valore massimo è inferiore a 5 e l'ID noleggio è maggiore di 10000 (determinato dalla clausola di Where).
In sintesi
La clausola postgreSQL che ha consente di filtrare i risultati che soddisfano una condizione aggregata specifica.