asp - asp.net - aspcode.it

COMMUNITY - Login
 Username:
 
 Password:
 
Voglio registrarmi!
Password dimenticata?
 Utenti on-line: 0
 Ospiti on-line: 4489
ASPCode.it - Store
<< lezione precedente lezione successiva >>

Breve corso di SQL - Le funzioni di aggregazione

Uno dei più utili comandi all'interno della clausola WHERE è sicuramente il GROUP BY, che serve per aggregare i dati secondo alcuni criteri.

Nelle query con la clausola GROUP BY si possono usare funzioni che permettono di calcolare medie, somme, massimi, minimi etc; per esempio la funzione COUNT effettua il conteggio delle righe restituite, mentre la funzione AVG effettua la media dei valori dell'intervallo.

Nella parte dopo la parola chiave SELECT, che deve contenere i nomi dei campi da estrarre, possono essere messi solo campi contenuti nella clausola GROUP BY o funzioni di calcolo di valori su intervalli (perché? Sai spiegarlo?)
Es: Prendiamo ora invece la tabella Progetti:

Nome_progetto Ore_uomo Ambito
fax 400 Comunicazioni
mail 700 Comunicazioni
contabilità 3500 Gestionale
stipendi 7000 Gestionale
SMTP 400 Comunicazioni
POP 7000 Comunicazioni
inventario 10500 Gestionale

La query

SELECT Ambito, Count(*) As TOT, AVG(Ore_uomo) AS MEDIA FROM Progetti GROUP BY Ambito

Ritorna

Ambito TOT MEDIA
Comunicazioni 4 2125
Gestionale 3 7000

La funzione AVG effettua la media sui valori contenuti nel campo Ore_uomo, raggruppati secondo il valore contenuto nel campo Ambito.

La clausola HAVING pone delle condizioni sulle clausole di gruppo, per esempio per condiderare solo i raggruppamenti che hanno più di un certo numero di elementi:
Es: con la stessa tabella dell'esempio precedente, la query

SELECT Count(*) As NUM, Ore_uomo
FROM Progetti
GROUP BY Ore_uomo
HAVING Count(*)>1

Ritorna

NUM Ore_uomo
2 400
2 7000

Che si riferiscono ovviamente alla 1°, 4°, 5° e 6° riga della tabella.

<< lezione precedente lezione successiva >>


Utenti connessi: 4489