SELECT, WHERE, GROUP BY
Agregghi i dati delle campagne
SELECT, WHERE, GROUP BY è una lezione Digital Marketing Academy gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Digital Marketing Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Digital Marketing Academy include 4 lezioni in totale.
I tre verbi
Quasi ogni metrica di marketing nasce da tre clausole: SELECT sceglie le colonne, WHERE filtra le righe e GROUP BY riunisce le righe in segmenti.
Se padroneggia questa triade, può rispondere autonomamente alla maggior parte delle domande analitiche quotidiane.
SELECT channel, SUM(revenue) AS revenue
FROM orders
GROUP BY channel;SELECT: scegliere le colonne
SELECT elenca i dati che desidera ottenere. Può rinominare le colonne con AS per rendere leggibile l'output e calcolare nuovi valori direttamente nella query.
Mantenga contenuti i set di risultati: estragga solo le colonne di cui ha effettivamente bisogno, soprattutto nelle tabelle di grandi dimensioni.
SELECT campaign_id AS campaign,
spend,
spend * 1.2 AS spend_with_fees
FROM campaigns;WHERE: filtrare le righe
WHERE conserva solo le righe che corrispondono a una condizione. Combini le condizioni con AND e OR per individuare con precisione un segmento.
I filtri sulle date sono il pane quotidiano di chi fa marketing: definiscono con precisione l'intervallo della reportistica.
SELECT *
FROM sessions
WHERE channel = 'email'
AND session_date >= DATE '2026-01-01'
AND device = 'mobile';Filtrare con IN e BETWEEN
IN corrisponde a qualunque valore di un elenco ed è perfetto per diverse campagne contemporaneamente. BETWEEN seleziona un intervallo ed è ideale per le finestre temporali.
Queste clausole mantengono i filtri complessi brevi e leggibili, evitando lunghe catene di OR.
SELECT order_id, revenue
FROM orders
WHERE channel IN ('paid_search', 'paid_social')
AND order_date BETWEEN DATE '2026-03-01' AND DATE '2026-03-31';GROUP BY: segmentare
GROUP BY riunisce in una sola riga le righe che condividono un valore, creando una riga per ogni gruppo. Lo abbini a funzioni di aggregazione come SUM, COUNT e AVG per ottenere metriche relative a ogni segmento.
È così che trasforma gli eventi grezzi in una tabella delle prestazioni, canale per canale.
SELECT channel,
COUNT(*) AS sessions,
SUM(revenue) AS revenue
FROM sessions
GROUP BY channel;Funzioni di aggregazione
SUM somma i ricavi, COUNT conta gli eventi, AVG calcola la media e COUNT(DISTINCT ...) conta gli utenti unici.
I conteggi distinti sono importanti nel marketing: il totale delle sessioni e il numero di visitatori unici sono valori molto diversi.
SELECT campaign_id,
COUNT(*) AS clicks,
COUNT(DISTINCT user_id) AS reach,
AVG(revenue) AS avg_order
FROM orders
GROUP BY campaign_id;Raggruppamento per più colonne
Raggruppi per più di una colonna per creare una matrice, ad esempio canale per dispositivo. Ogni combinazione univoca diventa una riga distinta.
In questo modo può ottenere una segmentazione più approfondita senza esportare nulla in un foglio di calcolo.
SELECT channel, device,
COUNT(*) AS sessions
FROM sessions
GROUP BY channel, device
ORDER BY channel, sessions DESC;HAVING: filtrare i gruppi
WHERE filtra le righe prima del raggruppamento; HAVING filtra i gruppi dopo l'aggregazione. Utilizzi HAVING per mantenere solo i segmenti sopra una soglia.
Ad esempio, mostri solo le campagne che hanno generato più di 100 ordini.
SELECT campaign_id, COUNT(*) AS orders
FROM orders
GROUP BY campaign_id
HAVING COUNT(*) > 100
ORDER BY orders DESC;Ordinamento e limitazione
ORDER BY ordina i risultati in modo che le righe più importanti compaiano per prime. LIMIT limita il numero di righe visualizzate, ed è ideale per i report top-N.
Insieme, rispondono immediatamente alla domanda: «quali sono le mie 5 campagne principali per ricavi?»
SELECT campaign_id, SUM(revenue) AS revenue
FROM orders
GROUP BY campaign_id
ORDER BY revenue DESC
LIMIT 5;Aggregazione condizionale
FILTER (o CASE all'interno di un aggregato) consente a una sola query di calcolare contemporaneamente diverse metriche condizionali, come i ricavi dei clienti nuovi e di quelli di ritorno.
In questo modo si evita di eseguire più query e si mantengono i segmenti perfettamente allineati.
SELECT channel,
SUM(revenue) FILTER (WHERE is_new_customer) AS new_rev,
SUM(revenue) FILTER (WHERE NOT is_new_customer) AS repeat_rev
FROM orders
GROUP BY channel;Comporre il tutto
Una query completa combina tutte le clausole: filtra le righe con WHERE, raggruppa, filtra i gruppi con HAVING, quindi ordina e limita i risultati.
Letta dall'alto verso il basso, racconta una storia analitica completa sui vostri canali.
SELECT channel, SUM(revenue) AS revenue
FROM orders
WHERE order_date >= CURRENT_DATE - INTERVAL '30 days'
GROUP BY channel
HAVING SUM(revenue) > 1000
ORDER BY revenue DESC;Controllo rapido
Desiderate solo i gruppi di campagne con più di 50 ordini. Quale clausola filtra i gruppi aggregati?
Riepilogo
SELECT seleziona le colonne, WHERE filtra le righe, GROUP BY segmenta, HAVING filtra i gruppi, mentre ORDER BY e LIMIT definiscono la forma dell'output.
Con l'aggregazione condizionale calcolate diverse metriche in un'unica elaborazione. Prossimo argomento: combinare dati provenienti da più tabelle con le JOIN.
Domande Frequenti
La lezione «SELECT, WHERE, GROUP BY» è gratuita?
Sì — il testo completo di «SELECT, WHERE, GROUP BY» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Digital Marketing Academy, passa a CoddyKit PRO. Il corso Digital Marketing Academy include 4 lezioni in totale.
Cosa imparerò in «SELECT, WHERE, GROUP BY»?
Agregghi i dati delle campagne Eserciti Digital Marketing Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Digital Marketing Academy?
Non è richiesta alcuna esperienza precedente. Digital Marketing Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.
Quanto tempo richiede la lezione «SELECT, WHERE, GROUP BY»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Digital Marketing Academy?
Sì. Ogni lezione Digital Marketing Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Perché i marketer imparano SQL
- SELECT, WHERE, GROUP BY
- Unire le tabelle di marketing
- Query per coorti e funnel