Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Aggregazione e Raggruppamento in SQL | Lavorare con i Dati
Fondamenti di Databricks: Guida per Principianti

Aggregazione e Raggruppamento in SQL

Scorri per mostrare il menu

Note
Definizione

L'aggregazione in SQL utilizza la clausola GROUP BY per organizzare i dati grezzi in righe di riepilogo. Utilizzando funzioni come SUM(), AVG() e COUNT(), è possibile trasformare milioni di righe in metriche aziendali utili direttamente all'interno di una cella SQL.

Per molti, SQL è il linguaggio più naturale per sintetizzare i dati. La sintassi è altamente leggibile e segue un flusso logico: scegliere le categorie, selezionare i calcoli e definire i gruppi. In questo capitolo, utilizzerai la vista temporanea creata in precedenza per eseguire le stesse aggregazioni fatte in Python, ma con la semplicità di SQL.

La clausola GROUP BY

In SQL, ogni colonna che non viene "sintetizzata matematicamente" deve essere inclusa nell'istruzione GROUP BY alla fine della query. Questo indica al motore SQL come suddividere i dati.

SELECT cut, COUNT(*) 
FROM diamond_view
GROUP BY cut

Utilizzo delle funzioni di aggregazione integrate

SQL offre diverse funzioni standard per eseguire calcoli sulle colonne numeriche:

  • SUM(): somma di tutti i valori nella colonna;
  • AVG(): calcolo della media;
  • MIN() / MAX(): ricerca del valore minimo o massimo;
  • COUNT(): restituisce il numero di righe.
%sql
SELECT 
  cut, 
  SUM(x), 
  AVG(y)
FROM diamond_view
GROUP BY cut

Alias per report professionali

Per impostazione predefinita, SQL potrebbe etichettare le colonne dei risultati come sum(Total_Profit). Per rendere l'output adatto a una dashboard aziendale, utilizzare la parola chiave AS per rinominare queste colonne con nomi più descrittivi.

%sql
SELECT 
  cut, 
  SUM(x) AS Total_Length,
  MAX(y) AS Highest_Diamond_Value
FROM diamond_view
GROUP BY cut

Filtraggio dei dati aggregati: la clausola HAVING

Un errore comune è tentare di filtrare un risultato aggregato utilizzando WHERE. In SQL, WHERE filtra le singole righe prima che vengano raggruppate. Se si desidera filtrare i risultati dopo che sono stati sommati (ad esempio, per mostrare solo le regioni con più di $1.000.000 di profitto), è necessario utilizzare la clausola HAVING.

%sql
SELECT cut, SUM(x) AS Total_Length
FROM diamond_view
GROUP BY cut
HAVING Total_Length > 4000

Ordinamento del riepilogo

Per evidenziare le informazioni più rilevanti, utilizzare sempre ORDER BY. Questo consente di classificare i risultati, ad esempio mostrando le regioni più redditizie in cima alla tabella.

%sql
SELECT cut, SUM(x) AS Total_Length
FROM diamond_view
GROUP BY cut
ORDER BY Total_Length DESC
question mark

Quale clausola SQL è necessaria per creare righe di riepilogo quando si utilizzano funzioni di aggregazione come SUM() o AVG()?

Seleziona la risposta corretta

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 4. Capitolo 7

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Sezione 4. Capitolo 7
some-alt