SQL è la lingua standard per lavorare con i database relazionali. Ha nel suo arsenale molti potenti strumenti per manipolare i dati memorizzati sotto forma di tabelle.

avendo la descrizione sql

Indubbiamente, la capacità di raggruppare i dati conil loro campionamento da una determinata caratteristica è uno di questi strumenti. L'istruzione SQL HAVING, insieme alla clausola WHERE, consente di definire le condizioni di campionamento per i dati già raggruppati in qualche modo.

Parametro SQL HAV: descrizione

Prima di tutto, va notato che questo parametroè facoltativo e viene utilizzato esclusivamente in combinazione con il parametro GROUP BY. Come ricordi, GROUP BY viene utilizzato quando SELECT utilizza funzioni aggregate e i risultati dei loro calcoli devono essere ottenuti da determinati gruppi. Se WHERE consente di impostare le condizioni per una selezione prima che i dati siano raggruppati, HAVING contiene le condizioni relative ai dati già nei gruppi stessi. Per una migliore comprensione, diamo un'occhiata all'esempio con lo schema mostrato nella figura sottostante.

sql ha

Questo è un ottimo esempio, fornendo una descrizione SQL HAVING. Viene fornita una tabella con un elenco di nomi di prodotti, aziende che li producono e altri campi. Nella query nell'angolo in alto a destra stiamo cercando di ottenere informazioni su quanti nomi di prodotti ogni azienda produce, mentre vogliamo produrre solo quelle aziende che producono più di 2 titoli. Il parametro GROUP BY formava tre gruppi corrispondenti ai nomi delle società, per ognuna delle quali veniva calcolato il numero di prodotti (righe). Ma il parametro HAVING per la sua condizione ha tagliato un gruppo dal campione risultante, perché non soddisfaceva la condizione. Di conseguenza, otteniamo due gruppi, corrispondenti alle aziende con il numero di prodotti 5 e 3.

Potrebbe sorgere una domanda sul perché utilizzareAVERE se c'è un WHERE in SQL. Se usassimo WHERE, guarderebbe il numero totale di righe nella tabella, non nei gruppi, e la condizione non avrebbe senso in questo caso. Tuttavia, abbastanza spesso coesistono perfettamente in una richiesta.

sql con sintassi esemplificativa

Nell'esempio sopra, possiamo vedere come, in primo luogoc'è una selezione di dati sui nomi dei dipendenti specificati nel parametro WHERE, e quindi il risultato raggruppato in GROUP BY passa un controllo aggiuntivo sulla quantità di stipendio per ciascun dipendente.

Parametro SQL HAVING: esempi, sintassi

Consideriamo alcune caratteristiche di sintassiAVERE SQL. La descrizione di questo parametro è abbastanza semplice. Innanzitutto, come già notato, viene utilizzato esclusivamente insieme al parametro GROUP BY e viene specificato immediatamente dopo di esso e prima di ORDER BY, se ne esiste uno nella query. È comprensibile, poiché HAVING definisce le condizioni per i dati già raggruppati. In secondo luogo, nella condizione di questo parametro, è possibile utilizzare solo le funzioni e i campi di aggregazione specificati nel parametro GROUP BY. Tutte le condizioni in questo parametro sono specificate esattamente come nel caso di WHERE.

conclusione

Come puoi vedere, niente di complicato in questo operatoren. Semanticamente è usato nello stesso modo di DOVE. È importante capire che WHERE viene utilizzato rispetto a tutti i dati selezionabili e HAVING è solo relativo ai gruppi definiti nel parametro GROUP BY. Abbiamo presentato una descrizione completa per HAVING SQL, che è sufficiente per lavorare con sicurezza con esso.