mi sapete come e quando si usa il comando group by nelle query ?
ho capito come funziona select , from e where ma questa non la capisco proprio .
Tre risposte:
?
2012-04-22 09:08:32 UTC
Serve per raggruppare le righe secondo un campo uguale in comune
?
2012-04-22 21:12:36 UTC
ATTENZIONE
Quando usi la clausola group by nell'elenco dei campi della select puoi specificare solo i campi di aggregazione (quelli per cui raggruppare) oppure espressioni con funzioni di aggregazione.
Esempio: SELECT COGNOME, COUNT(NOME) FROM ANAGRAFICA GROUP BY COGNOME
questa select prende tutti i cognomi della tab anagrafica e per ognumo conta quante persone portano lo stesso cognome.
Le funzioni di aggregazione sono COUNT, AVG, SUM, MIN, MAX.
Quindi sottoscrivo quasi completamente la risposta di Nicola ma non per quanto riguarda * che nel caso di select con group by non ha senso.
?
2012-04-22 19:33:22 UTC
Molto semplice group by ti permette di raggruppare le tuple della relazione in base a un attributo uguale.
Ad esempio:
select Mansione
from impiegati
group by Mansione;
Ti raggruppa gli impiegati per Mansione, ora l'utilità dell'operatore group by non è solo quella di raggruppare le tuple ma soprattutto quella di poter imporre delle condizioni su questi gruppi, questo lo si ottiene mediante il costrutto having seguito da una condizione ad esempio:
select Mansione
from impiegati
group by Mansione
having sum(Stipendio) >1000
**************************
@Paolo
Si Paolo hai ragione, non ha senso perchè mi rimane solo il primo elemento di ogni gruppo e non acquista significato la tupla, modifico la query
ⓘ
Questo contenuto è stato originariamente pubblicato su Y! Answers, un sito di domande e risposte chiuso nel 2021.