Having in SQL

Nel linguaggio SQL la clausola Having mi permette di aggiungere una condizione di tipo aggregato sui gruppi creati con GROUP BY.

SELECT ...
GROUP BY attributo
HAVING condizione

L'interrogazione SELECT visualizza soltanto i dati aggregati che soddisfano la condizione indicata in HAVING.

La condizione è un'espressione booleana composta da costanti e operatori aggregati (Sum, Avg, Max, Min, Count).

Nota. A differenza della clausola WHERE, la clausola HAVING si applica sui dati aggregati, sui sottoinsiemi di righe e non sulle singole righe della tabella.

    Un esempio pratico

    Ho la tabella Studenti

    la tabella Studenti

    Voglio selezionare le città in cui la media dell'età degli studenti è inferiore a 21 anni.

    SELECT Città, AVG(Età) FROM Studenti
    GROUP BY Città
    HAVING AVG(Età)<21

    La query produce la tabella divisa in gruppi.

    Calcola la media in ogni singolo gruppo con l'operatore aggregato AVG e visualizza quelli in cui la media è inferiore a 21.

    il risultato della query

    Nella tabella di output non appare Milano perché la media degli studenti è esattamente uguale a 21. Quindi non rispetta la condizione HAVING.

    E così via.

     


     

    Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

    FacebookTwitterLinkedinLinkedin
    knowledge base

    Menu principale

    1. Il linguaggio Sql
    2. Come installare MySQL sul PC
    3. Come installare PostgreSQL
    4. Come creare una tabella
    5. Come fare una selezione
    6. Come modificare i dati in una tabella