Group by dividing the rows of a table into smaller groups .
This operator is used to group the results of a SELECT based on the specified field after BY . The operator must be used in conjunction with a statistical function (COUNT, SUM ...), using the following syntax: SELECT
_campo_, _funzione stat._
_tabelle_
FROM [WHERE _condizione_]
GROUP BY _campo_
where _campo_ must be the same in SELECT and GROUP BY .
Having specifica una condizione di ricerca per un gruppo o una funzione di aggregazione. Può essere specificata solo nell'istruzione SELECT. In genere viene inclusa in una clausola GROUP BY. Se la clausola GROUP BY non è specificata, la funzionalità della clausola HAVING corrisponde a quella di una clausola WHERE.
Supponiamo ad esempio che la tabella antichità abbia la colonna prezzo e che ciascuna riga abbia un valore inserito in questa colonna. Quello che ci interessa è di vedere il prezzo dell’oggetto più costoso comprato da ciascun acquirente. Si deve impartire via SQL l’ordine di raggruppare gli acquisti di ciascun acquirente, e di stampare il prezzo dell’acquisto più costoso:
SELECT IDAcquirente, MAX(Prezzo)
FROM ANTICHITA
GROUP BY IDAcquirente;
Ora, aggiungiamo l’istruzione di stampare il prezzo massimo di acquisto se supera i 100 dollari; in questo caso si usa l’istruzione HAVING:
SELECT IDAcquirente, MAX(Prezzo)FROM ANTICHITA
GROUP BY IDAcquirente
HAVING Prezzo > 100.
0 comments:
Post a Comment