Friday, December 5, 2008

White Smelly In My Clit

Insights on SQL: WHERE clause, GROUP BY , Having.

Clause Where is the list of conditions or requirements that a field must meet to be taken from the 'question (the conditions are specified by comparison operators, logical connectors and comparators as between, in, like, is null).

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