economia news e media viaggi informatica internet salute e benessere int rattenimento e spettacolo sport tempo libero istruzio ne e formazione arte cultura scienza

SQL

Linguaggio SQL. Settima parte.

A cura di Andrea Silvestri

Pubblicato il 21/01/2001

Le funzioni di raggruppamento (prima parte).

Consideriamo la tabella TEMPERATURE:

CITTA TEMPERATURA DATA
MILANO 5 10-01-2001
MILANO 7 11-01-2001
MILANO 9 12-01-2001
TORINO 5 10-01-2001
TORINO 7 11-01-2001
TORINO 6 12-01-2001

Come prima cosa vorrei farvi notare che la colonna citta' e' scritta senza accento, questo per evitare problemi di riconoscimento della stringa in una istruzione sql.
Supponiamo di voler conoscere la temperatura media delle due citta'.
Per fare cio' dobbiamo usare la funzione AVG, che calcola la media dei valori che le vengono passati, si tratta di una funzione di raggruppamento, appunto perche' 'raggruppa' i record e li elabora (in questo caso ne calcola la media).
Ad esempio:

SELECT AVG(temperatura) media
FROM temperature;


Il risultato e':

media
-----
6.5

Quindi la funzione ha raggruppato i sei record e ne ha estratto la media.
Supponiamo ora di voler estrarre la temperatura media di ogni citta'. Dobbiamo quindi indicare al database che vogliamo raggruppare i record secondo le citta'.
Per fare questo si utilizza una nuova clausola la GROUP BY.

SELECT citta,AVG(temperatura) media
FROM temperature
GROUP BY citta;


Ottenendo:

citta media
------- -------
MILANO 7
TORINO 6

E' fondamentale ricordarsi che quando si applica una funzione di raggruppamento, se si estraggono altre colonne, come la citta nel nostro caso, queste devono essere incluse nella group by, separate da virgola, se ce n'e' piu' di una.
Concludo questo intervento con una tabella che elenca le funzioni di raggruppamento a disposizione con sql:

FUNZIONE DESCRIZIONE
AVG Calcola la media
COUNT Conta i record, escludendo i null
MAX calcola il massimo
MIN calcola il minimo
STDDEV Calcola la deviazione standard
SUM Calcola la somma
VARIANCE Calcola la varianza


E se volessi estrarre le citta la cui media e' maggiore di 6.5? Si deve utilizzare una nuova clausola, che esamineremo nel prossimo intervento.

Vuoi essere aggiornato sulle novità della guida?

Feed RSS XML vostro feed RSS