16. Il linguaggio SQL Vers. 11.0 – Gennaio 2026
Linguaggio SQL: WHERE vs HAVING
Il WHERE è una clausola del linguaggio SQL che viene utilizzata per specificare una condizione durante il recupero dei dati da una singola tabella o dall ' unione di più tabelle.
L’ HAVING è una clausola del linguaggio SQL che specifica che un ' istruzione di SELECT deve restituire solo le righe in cui i valori raggruppati soddisfano le condizioni specificate.
Scopo
La clausola WHERE viene utilizzata per esprimere condizioni sui valori delle ennuple ossia per filtrare le righe di una singola tabella o di più di più tabelle
La clausola HAVING viene utilizzata per esprimere condizioni su valori di gruppi di ennuple aggregate ossia per filtrare i gruppi ottenuti dopo una GROUP BY
Aggregazione
La clausola WHERE non può essere utilizzata con le funzioni di aggregazione, a meno che esse non si trovino in una sottoquery annidata.
Le funzioni di aggregazione possono essere |
tranquillamente |
utilizzate |
con |
la |
clausola |
HAVING. |
|
|
|
|
Metodo di filtraggio
La clausola WHERE si comporta come un PRE-filtro( prima del raggruppamento)
La clausola HAVING si comporta come un POST-filtro( dopo il raggruppamento)
Raggruppa per ordine
La clausola WHERE viene utilizzata PRIMA della clausola GROUP BY
La clausola HAVING viene utilizzata DOPO la clausola GROUP BY.
Usato con
La clausola WHERE può essere utilizzata con SELECT, UPDATE e DELETE.
La clausola HAVING viene utilizzata solo all’ interno di una SELECT.
Autore: Rio Chierego( email: riochierego @ libero. it- sito web: www. riochierego. it) Pag. 49