Torna all'elenco degli articoli Articoli
Tempo di lettura: 8 minuti

Come l'analisi dei dati SQL può aiutarvi a capire la stagionalità nella vostra azienda

I dati aziendali contengono schemi stagionali nascosti: picchi di vendita, rallentamenti e cambiamenti che si ripetono ogni anno. Con poche query SQL, potete scoprire queste tendenze e trasformarle in decisioni più intelligenti. Ecco come fare.

Ogni azienda sperimenta alti e bassi: più vendite a dicembre, meno clienti ad agosto, un picco di richieste di assistenza dopo un aggiornamento del prodotto. Questi schemi sono noti come stagionalità e possono avere un forte impatto sulla pianificazione, sul personale, sul marketing e sull'inventario.

Se siete alle prime armi con SQL, non preoccupatevi. Potete iniziare con SQL per principianti - è stato progettato per aiutare i principianti a capire come scrivere query ed esplorare i dati con sicurezza.

La stagionalità non riguarda solo le festività o il tempo. Si tratta di riconoscere gli schemi prevedibili nella vostra attività e di utilizzarli a vostro vantaggio.

Per esempio:

  • Le vendite calano sempre a febbraio?
  • Il traffico aumenta ogni settembre?
  • I rimborsi sono sempre più alti a gennaio?

Molte aziende tirano a indovinare queste tendenze. Ma con SQL è possibile misurarle in modo chiaro, accurato e senza dover aspettare un cruscotto di BI.

In questo articolo vi mostreremo come scoprire i modelli stagionali nei vostri dati utilizzando SQL. Seguiremo un singolo esempio - un negozio di abbigliamento online chiamato TrendyThreads - e impareremo come poche query intelligenti possono aiutarvi:

  • Individuare i picchi stagionali di fatturato
  • Confrontare le prestazioni tra anni
  • Capire quando e dove i diversi prodotti si vendono meglio

Passo 1: Assicurarsi di avere i dati giusti

Prima di iniziare ad analizzare la stagionalità, avete bisogno di un ingrediente fondamentale: una colonna che vi dica quando è successo qualcosa.

In termini SQL, di solito si tratta di una colonna DATE o TIMESTAMP ad esempio:

  • order_date in una tabella di vendite
  • visit_date nel registro del traffico di un sito web
  • signup_timestamp in una tabella clienti

Qual è la differenza?

  • Una colonna DATE memorizza solo la data del calendario (ad esempio, 2025-07-25).
  • Una colonna TIMESTAMP include sia la data che l'ora (ad esempio, 2025-07-25 14:35:12).

SQL comprende entrambi i tipi e può raggrupparli per giorno, settimana, mese o persino ora. Ma attenzione: se le date sono memorizzate in testo semplice (come 'July 25'), è necessario convertirle in un formato di data corretto, altrimenti SQL non le raggrupperà o filtrerà correttamente.

In TrendyThreads, il nostro negozio di abbigliamento online immaginario, stiamo lavorando con una tabella ordini che include tutte le vendite degli ultimi tre anni. Ecco un esempio della struttura:

order_idorder_datetotal_amountproduct_categoryregion
10012023-01-0579.99JacketsNorth-East
10022023-03-1239.00T-ShirtsSouth
10032023-12-02120.00CoatsNorth-East
10042024-07-1959.99ShortsWest

Prima di immergersi nelle tendenze stagionali, è bene verificare la quantità di dati con cui si lavora. È possibile farlo con una semplice query:

SELECT MIN(order_date), MAX(order_date)
FROM orders;

Risultato:

  • Ordine più recente: 2022-01-01
  • Ordine più recente: 2024-06-30

Questo ci dà una solida finestra di tre anni, un numero sufficiente di dati per individuare gli schemi.

📘 Volete sperimentare l'uso di date e orari in SQL? Provate Funzioni SQL standard che contiene diverse sezioni su come lavorare con i dati di data e ora in SQL.

che contiene diverse sezioni su come lavorare con i dati di data e ora in SQL.

Ecco una versione combinata e rifinita di "Individuare gli schemi stagionali con SQL" e "Passo 2: Identificare le tendenze delle vendite mensili ", riunite in un'unica sezione coesa con un flusso fluido, spiegazioni facili per i principianti e un tono naturale LearnSQL.it:

Passo 2: individuare le tendenze mensili con SQL

Una volta confermato che il vostro set di dati include una colonna order_date appropriata, potete iniziare a usare l'SQL per scoprire i modelli stagionali, ad esempio quali sono i mesi che generano più fatturato.

Supponiamo di voler rispondere a una domanda elementare ma importante:

"Quali sono le nostre vendite totali ogni mese negli ultimi tre anni?".

Per farlo, utilizzerete tre strumenti SQL:

  • YEAR(order_date) - estrarre l'anno
  • MONTH(order_date) - estrarre il mese
  • GROUP BY - raggruppare i risultati per anno e mese

Ecco come si presenta la query:

SELECT
  EXTRACT(YEAR FROM order_date) AS year,
  EXTRACT(MONTH FROM order_date) AS month,
  SUM(total_amount) AS revenue
FROM orders
GROUP BY year, month
ORDER BY year, month;

Esempio di output:

yearmonthrevenue
202214,120.50
202223,080.00
202233,550.75
.........
2023127,940.25
202414,350.90

Cosa si può imparare:

  • Dicembre è il vostro picco più evidente: le entrate aumentano fino al 40%.
  • Febbraio è costantemente al di sotto delle aspettative, confermando di essere il mese più lento.
  • Le vendite aumentano costantemente da settembre a novembre, forse in previsione delle vacanze.

Sospettavate che dicembre fosse un mese importante: ora potete dimostrarlo. Questo tipo di informazioni vi aiuta a spostare il budget di marketing, a pianificare i livelli delle scorte e ad allineare gli sforzi del team alla domanda reale.

Volete creare fiducia con query di questo tipo? Provate Come creare semplici report SQL.

Passo 3: Confronto delle prestazioni anno per anno

Individuare i picchi stagionali è utile, ma c'è un'altra domanda fondamentale da porsi:

"Questi mesi stagionali stanno effettivamente crescendo nel tempo?".

In altre parole:

  • Il dicembre 2023 ha superato il dicembre 2022?
  • L'aprile 2024 è più forte dell'aprile 2023 o più debole?
    Per rispondere a questa domanda, è possibile confrontare le entrate di ogni mese con quelle dello stesso mese dell'anno precedente. SQL lo rende possibile grazie a un potente strumento chiamato funzione finestra, in particolare LAG().

La funzione LAG() permette di guardare indietro alla riga precedente, in questo caso alle entrate dell'anno precedente per lo stesso mese. Funziona così:

  • Si raggruppano i dati per mese e anno
  • Si ordinano per anno
  • Poi LAG() prende le entrate dell'anno precedente, all'interno dello stesso mese.

Ecco la query:

SELECT
  EXTRACT(YEAR FROM order_date) AS year,
  EXTRACT(MONTH FROM order_date) AS month,
  SUM(total_amount) AS revenue,
  LAG(SUM(total_amount)) OVER (
    PARTITION BY EXTRACT(MONTH FROM order_date)
    ORDER BY EXTRACT(YEAR FROM order_date)
  ) AS last_year_revenue
FROM orders
GROUP BY year, month
ORDER BY month, year;

Esempio di output:

yearmonthrevenuelast_year_revenue
2022126,400.00NULL
2023128,000.006,400.00
2024129,150.008,000.00

Cosa ci dice:

  • Dicembre 2023 è cresciuto del 25% rispetto a dicembre 2022 - un grande progresso.
  • Il dicembre 2024 ha aggiunto un altro 14%.
  • Se si nota un mese in calo rispetto all'anno precedente (come marzo), è un segnale di allarme che vale la pena indagare.

Questo è il potere delle funzioni finestra: si possono confrontare le righe senza scrivere subquery o unire la tabella a se stessa. Volete imparare tecniche come questa? Il nostro corso interattivo Window Functions (Funzioni Finestra) è il vostro prossimo passo.

Passo 4: Individuare le tendenze stagionali per prodotto

Sapere quando i clienti spendono è utile, ma sapere cosa acquistano in quei mesi è ancora meglio.

Supponiamo che vogliate rispondere a domande come:

  • Quali categorie di prodotti hanno un picco durante l'inverno?
  • I pantaloncini sono popolari solo in estate?
  • Alcuni articoli si vendono costantemente tutto l'anno?

Ecco la query SQL per scoprirlo:

SELECT
  product_category,
  EXTRACT(MONTH FROM order_date) AS month,
  SUM(total_amount) AS revenue
FROM orders
GROUP BY product_category, month
ORDER BY product_category, month;

Raggruppa le vendite per tipo di prodotto e mese e somma i ricavi di ogni categoria.

Esempio di output:

product_categorymonthrevenue
Coats114,500.00
Coats126,200.00
Shorts62,800.00
Shorts73,300.00
Shorts82,900.00
T-Shirts11,200.00
T-Shirts21,180.00
T-Shirts31,250.00
.........

Cosa ci dice:

  • I cappotti e le giacche si vendono meglio a novembre e dicembre.
  • I pantaloncini dominano nei mesi estivi
  • Le magliette hanno vendite costanti durante tutto l'anno.

Grazie a queste informazioni, è possibile

  • Regolare i livelli di inventario in base alla stagione
  • Promuovere gli articoli giusti al momento giusto
  • Evitare l'eccesso di scorte di prodotti stagionali nei mesi di riposo.

Volete affinare le vostre competenze? Provate il nostro corso Revenue Trend Analysis inSQL, che vi aiuterà a imparare ad analizzare le tendenze con SQL.

Passo 5: capire i modelli regionali

La stagionalità non è uguale dappertutto.

Se vendete in diverse parti del Paese o a diversi tipi di clienti, i modelli possono variare notevolmente. L'SQL consente di analizzare queste differenze raggruppando i dati per regione, categoria di prodotto o addirittura per segmento di clientela.

Esploriamo questa domanda:

"Gli abitanti del Sud acquistano cappotti invernali come i clienti del Nord?".

Ecco come verificare:

SELECT
  region,
  EXTRACT(MONTH FROM order_date) AS month,
  SUM(total_amount) AS revenue
FROM orders
WHERE product_category IN ('Coats', 'Jackets')
GROUP BY region, month
ORDER BY region, month;

Esempio di output

regionmonthrevenue
North-East114,100.00
North-East125,800.00
South111,200.00
South121,350.00
West122,300.00

Cosa ci dice:

  • Le regioni settentrionali mostrano chiari picchi a novembre e dicembre.
  • I clienti del Sud acquistano meno cappotti, anche in inverno.
  • L'Occidente si colloca a metà strada

Perché è importante:

  • Non spendete il budget pubblicitario per promuovere l'abbigliamento invernale in regioni in cui non si muoverà.
  • Localizzare le campagne e-mail e i banner della homepage in base alla geografia
  • Inviate più inventario al nord e risparmiate spazio al sud.

Volete provare altri tipi di analisi raggruppate? SQL GROUP BY Practice vi offre scenari aziendali reali da risolvere con SQL.

Dai dati all'azione

Le tendenze stagionali si nascondono nei vostri dati: SQL vi aiuta a scoprirle. Non servono strumenti sofisticati o una laurea in scienze dei dati. Basta avere accesso ai dati, una colonna di date e qualche query ben scritta.

In pochi passi imparerete a..:

  • Individuare picchi e cali mensili
  • Confrontare le prestazioni anno per anno
  • Vedere come i prodotti e le regioni si comportano in modo diverso

In questo modo potrete pianificare il futuro: fare scorte più intelligenti, programmare le campagne e prendere decisioni basate su fatti e non su ipotesi. Volete andare oltre? Provate il percorso SQL per l'analisi dei dati.

Ogni azienda ha i suoi ritmi. Il trucco sta nel conoscere i vostri e SQL vi fornisce gli strumenti per farlo. Iniziate a esercitarvi su LearnSQL.it e scoprite cosa stanno cercando di dirvi i vostri dati.