5° Anno TEORIA 4. Introduzione al linguaggio SQL | Page 49

16 . Il linguaggio SQL Vers . 9.3 – Marzo 2024
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