Dall’analisi Giornaliera ad una visione Cumulativa: Analizzare il Trend di Fatturati e Ordini
Vuoi analizzare il trend del totale di fatturati o ordini su un determinato periodo di tempo, per identificare tendenze nei dati e quindi eventuali criticità? BigQuery ti mette a disposizione un potente strumento di interrogazione dei dati: le funzioni di finestra. Cerchiamo di capire insieme cosa sono e come utilizzarle!
La funzione di finestra in BigQuery rappresenta un potente strumento che consente di eseguire calcoli su un set di righe relative alla riga corrente. Questo è particolarmente utile per analisi sequenziali, calcoli cumulativi, medie mobili e molto altro, mantenendo la struttura originale del tuo dataset.
Supponiamo, ad esempio, di voler calcolare la somma cumulativa di un certo campo. La somma cumulativa è un concetto utilizzato in analisi dei dati per indicare la somma progressiva di valori in una sequenza, aggiungendo ogni nuovo valore nella sequenza alla somma totale calcolata fino a quel momento.
Per esemplificare meglio, facciamo un esempio concreto. Immaginiamo di avere una tabella di vendite giornaliere per un certo prodotto, e vuoi capire come le vendite si accumulano giorno dopo giorno.
Ecco i dati di esempio:
Data | Vendite |
---|---|
2024-02-01 | 100 |
2024-02-02 | 150 |
2024-02-03 | 200 |
2024-02-04 | 50 |
La somma cumulativa delle vendite per ogni giorno sarebbe calcolata come segue:
- 2024-02-01: 100 (nessuna somma precedente, quindi la somma cumulativa è uguale alle vendite del giorno)
- 2024-02-02: 250 (100 del giorno precedente + 150 del giorno corrente)
- 2024-02-03: 450 (250 somma cumulativa del giorno precedente + 200 del giorno corrente)
- 2024-02-04: 500 (450 somma cumulativa del giorno precedente + 50 del giorno corrente)
Ogni valore di somma cumulativa rappresenta il totale delle vendite fino a quella data inclusa. Questo tipo di analisi è utile per vedere la crescita totale nel tempo o l’effetto cumulativo di aggiunte giornaliere.
Facciamo ora un esempio più concreto:
calcoleremo la somma cumulativa per data delle vendite nette.
Questo sarà il report che genereremo:
Per calcolare le vendite nette, sottrarremo i costi di spedizione e le tasse dal valore totale degli acquisti. Per la somma cumulativa delle vendite nette utilizzeremo la funzione finestra:
SELECT
event_date,
SUM(fatturato_netto) OVER (ORDER BY event_date) AS cumulative_sales
FROM (
SELECT
event_date,
ROUND(SUM(value.double_value) - SUM(CASE WHEN key = 'shipping' THEN value.double_value ELSE 0 END) - SUM(CASE WHEN key = 'tax' THEN value.double_value ELSE 0 END), 2) AS fatturato_netto
FROM
`your_project.your_dataset.your_table`,
UNNEST(event_params) AS params
WHERE
event_name = 'purchase'
AND _TABLE_SUFFIX BETWEEN FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE(), INTERVAL 30 DAY)) AND FORMAT_DATE('%Y%m%d', CURRENT_DATE())
GROUP BY
event_date
)
ORDER BY
event_date desc;
PS. Ricorda di sostituire your_project
, your_dataset
e your_table
con i tuoi identificativi di progetto, dataset e tabella effettivi. Queste query sono solo punti di partenza e potrebbero necessitare di personalizzazioni per adattarsi alle tue esigenze specifiche e alla struttura dei tuoi dati.
Questa query fa quanto segue:
- Filtra gli eventi per
event_name = 'purchase'
per considerare solo gli acquisti. - Utilizza
UNNEST(event_params)
per espandere l’arrayevent_params
in modo da poter accedere ai valorikey
edouble_value
di ciascun parametro. - Calcola il fatturato netto per ogni data (
event_date
) sottraendo i costi di spedizione (shipping
) e tasse (tax
) dal valore totale degli acquisti (value
), assumendo chevalue.double_value
rappresenti il valore totale dell’acquisto prima della sottrazione di spedizione e tasse. - Calcola la somma cumulativa del fatturato netto ordinata per data dell’evento, utilizzando una funzione di finestra
SUM(...) OVER (ORDER BY event_date)
.
Assicurati di sostituire {table}
con il nome effettivo della tua tabella in BigQuery.
La seguente interrogazione fornisce, quindi, un’analisi giorno per giorno della crescita netta delle vendite, molto utile per individuare a colpo d’occhio eventuali drop-out dei fatturati.
Utilizzare le funzioni di finestra può rendere le tue query molto più potenti ed efficienti, permettendoti di esplorare i tuoi dati in modi che sarebbero altrimenti complessi o meno intuitivi con le aggregazioni standard.
Data Scientist
Sono un Data Scientist con esperienza nell’applicazione di tecniche avanzate di Machine Learning per l’analisi di complessi set di dati nel campo del marketing digitale. Specializzato nell’uso di Python, sviluppo modelli predittivi e di analisi dei dati che permettono di identificare e risolvere criticità nei progetti.