Funzioni del gruppo SQL

Sommario

Le funzioni di gruppo sono integrate nelle funzioni SQL che operano su gruppi di righe e restituiscono un valore per l'intero gruppo. Queste funzioni sono: GRUPPO, AVERE, CONTEGGIO, MAX, MIN, AVG, SOMMA, DISTINTO.
La clausola RAGGRUPPA PER utilizzato insieme alle funzioni di gruppo per recuperare dati raggruppati in base a una o più colonne.
I subtotali possono essere ottenuti con la clausola GROUP BY. Una query con una clausola GROUP BY è detta query raggruppata perché raggruppa i dati nella tabella di origine e produce una singola riga di riepilogo per ogni gruppo formato. Le colonne indicate in GROUP BY sono chiamate colonne di raggruppamento.
Supponiamo una tabella delle vendite con i seguenti campi
ID | prodotto | prezzo | quantità | ID venditore
Esempio:
SELEZIONA SOMMA (prezzo) come vendite totali DA vendite
Ottiene la somma delle vendite totali effettuate, il valore viene assegnato alle vendite totali
SELEZIONA SOMMA (vendite) DA vendite GRUPPO PER ID dipendente
Viene formato un gruppo per ogni dipendente e la somma viene calcolata sulle righe di ciascun gruppo. L'esempio precedente ottiene un elenco con la somma delle vendite di ciascuno dei dipendenti.
La query sarebbe meglio includere nella lista di selezione il nome del dipendente per sapere a quale dipendente corrisponde la somma delle vendite:
 SELEZIONA dipendenti.nome, SOMMA (prezzo) AS venditeper dipendente FROM vendite, dipendenti Dove vendite.idemployee = dipendenti.idemployee GROUP BY ideemployee

Solo:
valori costanti
funzioni di colonna
colonne di raggruppamento (colonne che compaiono nella clausola GROUP BY)
o qualsiasi espressione basata su quanto sopra.
Esempio: Vogliamo se avessimo filiali e vorremmo ottenere la somma delle vendite dei dipendenti raggruppati per regione e città:
 SELEZIONA SOMMA (prezzo) come vendite per filiale DA vendite GRUPPO PER regione, città

È raggruppato prima per regione e all'interno di ciascuna regione per città.
Tutte le righe che hanno un valore nullo nel campo di raggruppamento diventano un singolo gruppo. Vale a dire, tratta il valore null come qualsiasi valore per scopi di raggruppamento.
La clausola HAVING
La clausola HAVING ci consente di selezionare le righe dalla tabella risultanti da una query di raggruppamento
Solo quanto segue può apparire nella condizione di selezione:
valori costanti
funzioni di colonna
colonne di raggruppamento (colonne che compaiono nella clausola GROUP BY)
o qualsiasi espressione basata su quanto sopra.
Esempio: vogliamo sapere quali dipendenti hanno venduto più di 10.000 euro
 SELEZIONARE * DAL GRUPPO DI VENDITA PER idemployee CON AVG (prezzo)> 10000

Per ottenere quanto richiesto dobbiamo calcolare le vendite medie dei dipendenti, dobbiamo raggruppare i dipendenti per id e calcolare la media per ciascuna delle vendite per dipendente, infine dobbiamo selezionare dal risultato le righe che hanno una media maggiore di 10.000.
Come viene eseguita una query di gruppo internamente?
Innanzitutto la tabella dell'origine dati viene formata in base alla clausola FROM,
le righe sono selezionate dall'origine dati in base alla clausola WHERE,
i gruppi di righe sono formati in base alla clausola GROUP BY,
Per ogni gruppo si ottiene una riga nella tabella risultante con i valori che compaiono nelle clausole GROUP BY, HAVING e nell'elenco di selezione,
le righe sono selezionate dalla tabella risultante secondo la clausola HAVING,
le colonne che non compaiono nell'elenco di selezione vengono rimosse dalla tabella risultante,
le righe della tabella risultante sono ordinate secondo la clausola ***** BY
Una query diventa una query di gruppo non appena compare GROUP BY, HAVING o una funzione di colonna.Ti è piaciuto e hai aiutato questo Tutorial?Puoi premiare l'autore premendo questo pulsante per dargli un punto positivo
wave wave wave wave wave