logo

GRUPPO SQL PER

La clausola SQL GROUP BY viene utilizzata per organizzare dati identici in gruppi in base a una o più colonne. Viene comunemente utilizzato con funzioni aggregate come COUNT() SUM() AVG() MAX() e MIN() per eseguire calcoli su ciascun gruppo di dati.

frutta_immagine' title=

Esempio: Per prima cosa lo faremo creare un database SQL demo e una tabella su cui utilizzeremo il comando GROUP BY.

Dipendenti' loading='lazy' title=

Domanda:



SELECT Department SUM(Salary) AS TotalSalary FROM Employees GROUP BY Department;

Produzione:

Gruppo per query' loading='lazy' title=

Sintassi:

esercitazione su c#
SELECT column1 aggregate_function(column2) FROM table_name WHERE condition GROUP BY column1 column2;
  • funzione_aggregata: funzione utilizzata per l'aggregazione, ad es. SOMMA() AVG() CONTEGGIO().
  • nome_tabella: nome della tabella da cui vengono selezionati i dati.
  • condizione: Condizione facoltativa per filtrare le righe prima del raggruppamento (utilizzata con WHERE).
  • colonna1 colonna2: Colonne a cui viene applicato il raggruppamento.

Esempi di GRUPPO PER

Supponiamo di avere una tabella Studente. Inseriremo alcuni dati di esempio in questa tabella e quindi eseguiremo operazioni utilizzando GROUP BY per comprendere come raggruppa le righe in base a una colonna e aggrega i dati.

gr' loading='lazy' title=

Esempio 1: raggruppamento per singola colonna

Quando raggruppiamo per una singola colonna, le righe con lo stesso valore in quella colonna vengono combinate. Ad esempio il raggruppamento per materia mostra quanti studenti sono iscritti a ciascuna materia.

Domanda:

SELECT subject COUNT(*) AS Student_Count FROM Student GROUP BY subject;

Produzione:

grp-1' loading='lazy' title=

Spiegazione: Ogni materia appare due volte nella tabella, quindi il conteggio per Matematica e Scienze inglesi è 2.

Esempio 2: raggruppamento per più colonne

L'utilizzo di GROUP BY con più colonne raggruppa le righe che condividono gli stessi valori in quelle colonne. Ad esempio, il raggruppamento per materia e anno combinerà le righe con la stessa coppia materia-anno e potremo contare quanti studenti rientrano in ciascun gruppo.

quante città ci sono in noi

Domanda:

SELECT subject year COUNT(*) FROM Student GROUP BY subject year;

Produzione:

studenti-gr' loading='lazy' title=

Spiegazione: Gli studenti con la stessa materia e lo stesso anno vengono raggruppati. Poiché ogni coppia materia-anno ricorre due volte, il conteggio è 2 per ogni gruppo.

Clausola HAVING nella clausola GRUPPO BY

La clausola HAVING viene utilizzata per filtrare i risultati dopo il raggruppamento, soprattutto quando si lavora con funzioni aggregate come SUM() COUNT() o AVG(). A differenza di WHERE applica condizioni sui dati raggruppati.

dip' loading='lazy' title=

Esempio 1: filtrare per stipendio totale

In questa query raggruppiamo i dipendenti per nome e visualizziamo solo quelli il cui stipendio totale è superiore a 50000.

SELECT NAME SUM(sal) FROM Emp GROUP BY name HAVING SUM(sal)>50000; 

Produzione

età-1' loading='lazy' title=

Spiegazione : nel risultato vengono visualizzati solo i dipendenti il ​​cui stipendio totale supera 50000.

Esempio 2: filtrare per stipendio medio

In questa query raggruppiamo i dipendenti per età e visualizziamo solo quelle fasce d'età in cui lo stipendio medio è superiore a 60000.

SELECT age AVG(sal) AS Average_Salary FROM emp GROUP BY age HAVING AVG(sal) > 60000;

Produzione:

genitore jquery
uscita-1' loading='lazy' title=

Spiegazione: Questa query raggruppa i dipendenti per età e calcola lo stipendio medio per ciascuna età. Vengono visualizzati solo i gruppi di età in cui lo stipendio medio è superiore a 60000.

Crea quiz