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

Pacchetto iniziale sulle funzioni finestra per il 2026: impara una competenza avanzata alla settimana nel mese di gennaio

Le funzioni finestra sono una delle competenze SQL più pratiche che puoi apprendere se conosci già le basi e desideri analizzare i dati in modo più efficace. Ti aiutano a confrontare le righe, creare classifiche e tenere traccia delle modifiche nel tempo senza sottodomande complesse. In questo starter pack, imparerai una competenza sulle funzioni finestra alla settimana nel mese di gennaio e trasformerai un argomento avanzato in uno strumento SQL utilizzabile quotidianamente.

Le funzioni finestra sono uno di quegli argomenti SQL che spesso vengono etichettati come "avanzati" e poi tranquillamente rimandati. Eppure, nel lavoro di analisi reale, sono uno dei modi più veloci per migliorare il proprio livello. Ti consentono di analizzare i dati riga per riga senza perdere dettagli, evitare subquery complesse e scrivere SQL che riflette effettivamente il tuo modo di pensare ai dati.

Gennaio è un buon momento per affrontarle. Nuovi cicli di reporting, nuovi progetti e spesso nuovi obiettivi di apprendimento. Invece di cercare di imparare tutto in una volta, questo approccio starter pack si concentra su una competenza pratica alla settimana. Dopo un mese, non solo riconoscerai le funzioni finestra, ma saprai anche come usarle.

Questo articolo mostra come strutturare quel mese e come utilizzare le risorse di LearnSQL.it per rendere il processo efficiente e realistico. Ogni risorsa di LearnSQL.com ha un ruolo chiaro:

  • Il corso Window Functions (Funzioni Finestra) insegna in dettaglio i concetti e la sintassi delle funzioni finestra. Oltre 200 esercizi pratici assicurano il rafforzamento di ogni concetto e consentono di fare molta pratica.
  • Il foglio di riferimento "Window Functions (Funzioni Finestra)" è un documento scaricabile che riassume la sintassi, le clausole chiave e le funzioni finestra più comunemente utilizzate. È disponibile nei formati A4, Letter, A3, Ledger e PDF ottimizzato per dispositivi mobili, per una rapida consultazione durante l'utilizzo delle funzioni finestra.

Insieme, formano un ciclo di apprendimento completo: imparare, esercitarsi, applicare.

Perché vale la pena imparare le funzioni di finestra nel 2026

La maggior parte del lavoro SQL nel mondo reale non riguarda i totali. Riguarda i confronti:

  • Chi ha venduto più del mese scorso?
  • Quale prodotto è al primo posto in ogni categoria?
  • Come si confronta il valore odierno con quello della riga precedente?

Le query classiche GROUP BY classiche hanno difficoltà a rispondere a queste domande perché rimuovono i dettagli delle singole righe. Le funzioni finestra risolvono questo problema calcolando i valori delle righe correlate mantenendo intatte tutte le righe originali.

Immagina una GROUP BY query con il fatturato giornaliero per prodotto.

product total_revenue
A 1,200
B 900

Questo risultato è utile, ma notate cosa manca:

  • Singolo i giorni sono spariti
  • Non è possibile vedere come sono cambiati i ricavi nel tempo
  • Non è possibile confrontare una riga con un'altra

Ora guardiamo il risultato di un calcolo simile utilizzando una funzione finestra.

date product revenue running_total
2026-01-01 A 300 300
2026-01-02 A 400 700
2026-01-03 A 500 1,200
2026-01-01 B 200 200
2026-01-02 B 300 500
2026-01-03 B 400 900

Qui, ogni riga originale viene conservata e viene aggiunta una colonna analitica extra. È possibile vedere immediatamente:

  • Come si accumulano i totali nel tempo
  • Come ogni riga contribuisce al risultato finale
  • I modelli e le tendenze che GROUP BY nascondono

Questo è il vantaggio principale delle funzioni finestra. Consentono di calcolare classifiche, totali parziali e medie mobili senza perdere i dettagli a livello di riga.

Se conosci già le nozioni di base di SQL – SELECT, WHERE, GROUP BYe JOIN , le funzioni finestra sono il passo successivo più naturale per l'analisi, il reporting, la finanza, l'analisi delle prestazioni di marketing e il lavoro sui dati di prodotto.

Settimana 1: Imparare la sintassi di base e il modello mentale

L'obiettivo della prima settimana è comprendere il concetto alla base delle funzioni finestra. Le funzioni finestra sembrano intimidatorie principalmente perché introducono una nuova sintassi. Una volta compresa l'idea di "finestra", tutto il resto diventa più facile.

Una tipica funzione finestra ha questa struttura:

function_name(column) OVER (...)

L'elemento chiave è la OVER() . Definisce la finestra, ovvero l'insieme di righe che la funzione esamina quando esegue un calcolo.

Se si utilizza SUM(revenue) OVER(), la finestra è l'intero insieme di risultati. La funzione esamina tutte le righe contemporaneamente.

date product revenue total_revenue
2026-01-01 A 300 1,200
2026-01-02 A 400 1,200
2026-01-03 B 500 1,200

Ogni riga rimane nel risultato e lo stesso totale appare accanto a ciascuna di esse. Ciò consente di calcolare i rapporti, ad esempio quanto ogni riga contribuisce al fatturato totale.

Se si utilizza SUM(revenue) OVER (PARTITION BY product), la finestra non è più l'intera tabella. Al contrario, SQL crea una finestra separata per ciascun prodotto.

date product revenue product_total
2026-01-01 A 300 700
2026-01-02 A 400 700
2026-01-03 B 500 500

In questo caso, le righe sono raggruppate in modo logico, ma non compresse. Ogni riga "vede" solo le righe dello stesso prodotto quando viene eseguito il calcolo.

Questo è il modello mentale di base delle funzioni finestra. Si definisce una finestra di righe correlate, si applica un calcolo e si mantengono tutte le righe originali nel risultato.

Settimana 2: Classificazione e confronto delle righe

Una volta chiarite le nozioni di base, è il momento di imparare a conoscere le nuove funzioni finestra. Le funzioni di classificazione sono solitamente la prima famiglia di funzioni finestra che si impara.

Questa settimana ci concentreremo su ROW_NUMBER(), RANK()e DENSE_RANK(). Queste funzioni sono comunemente utilizzate per le classifiche, le query top-N e l'identificazione dei duplicati o dei primi record all'interno di un gruppo.

Immaginiamo una tabella denominata sales_summary con il fatturato totale per prodotto:

product revenue
A 1,000
B 1,000
C 800

Ora consideriamo la seguente query:

SELECT
  product,
  revenue,
  RANK() OVER (ORDER BY revenue DESC) AS revenue_rank
FROM sales_summary;

In questa query, la classifica si basa sulla colonna revenue colonna. La OVER (ORDER BY revenue DESC) definisce la finestra e l'ordine utilizzati solo per il calcolo della classifica, non per l'ordinamento del set di risultati finale.

product revenue revenue_rank
A 1,000 1
C 800 3
B 1,000 1

I prodotti A e B ricevono lo stesso rango perché hanno lo stesso ricavo. Il rango successivo è 3 perché RANK() lascia degli spazi vuoti in caso di parità. Si noti che l'ordinamento all'interno di OVER() viene utilizzato solo per determinare come viene calcolata la classifica, non come vengono visualizzati i risultati.

Qui, i prodotti A e B condividono lo stesso rango perché hanno lo stesso fatturato. Il rango successivo viene saltato, che è esattamente come RANK() . Esistono altre funzioni di classificazione che hanno un comportamento diverso: se si utilizzasse DENSE_RANK() , il prodotto C riceverebbe il rango 2. Se si utilizzasse ROW_NUMBER(), ogni riga otterrebbe un numero univoco, anche quando i valori sono pari. L'idea chiave rimane la stessa: la OVER (ORDER BY ...) clausola definisce la finestra e l'ordine in cui vengono confrontate le righe.

Continui a seguire il corso Window Functions (Funzioni Finestra), in particolare le parti 4 e 5, dove le funzioni di classificazione sono spiegate in dettaglio con esempi pratici. Questo è anche il momento giusto per iniziare a utilizzare il cheat sheet SQL Window Functions (Funzioni Finestra). Il cheat sheet ti aiuta a ricordare rapidamente la sintassi e il comportamento delle funzioni, così puoi concentrarti sulla comprensione di quando utilizzare ciascuna funzione di classificazione piuttosto che memorizzare i dettagli.

Settimana 3: Totali parziali e analisi basata sul tempo

Nella terza settimana, le funzioni finestra iniziano a sembrare veri e propri strumenti analitici. Qui imparerete a calcolare i totali progressivi, le somme cumulative e le medie mobili, modelli che compaiono costantemente nel lavoro con i dati reali.

Immagina una tabella con le entrate giornaliere:

date revenue
2026-01-01 300
2026-01-02 400
2026-01-03 500

Per calcolare un totale progressivo, puoi utilizzare la seguente funzione finestra:

SELECT 
  date, 
  revenue, 
  SUM(revenue) OVER (ORDER BY date) AS running_total 
FROM daily_sales;

In questo caso, la finestra è definita da ORDER BY date. Per ogni riga, la funzione esamina tutte le righe fino alla data corrente e calcola la somma cumulativa. Ogni riga mantiene i propri dati originali e il totale progressivo mostra come i valori si accumulano nel tempo. Ciò sarebbe difficile e molto meno leggibile da ottenere con le sottoquery.

date revenue running_total
2026-01-01 300 300
2026-01-02 400 700
2026-01-03 500 1,200

Questa settimana si concentra sulla comprensione di come funzioni aggregate come SUM() e AVG() quando vengono utilizzate come funzioni finestra e come l'ordinamento delle righe per data o sequenza influisca sul risultato.

Questi modelli sono ampiamente utilizzati nella rendicontazione finanziaria, nell'analisi delle prestazioni di marketing e nelle metriche di prodotto, ovunque siano importanti i cambiamenti nel tempo.

Continuerete con il corso Window Functions (Funzioni Finestra), concentrandovi sulle parti 6 e 7, dove vengono spiegati in dettaglio l'analisi basata sul tempo e i calcoli cumulativi. Questo è anche il punto in cui la pratica è più importante. Il set di esercizi "Window Functions (Funzioni Finestra)" vi offre esercizi strutturati che utilizzano set di dati reali, costringendovi a pensare in termini di finestre piuttosto che di sottoquery. La ripetizione è ciò che trasforma la comprensione in una competenza reale e utilizzabile.

Settimana 4: Combinare le funzioni di finestra (Window Functions (Funzioni Finestra)) in query reali

L'ultima settimana è dedicata alla sintesi di tutto ciò che è stato appreso. Nei progetti reali, le funzioni finestra sono raramente utilizzate in modo isolato. Le query spesso combinano classifiche, calcoli cumulativi e partizioni, il che rende particolarmente importanti la chiarezza e la struttura.

Questa settimana ti concentrerai sulla scrittura di query che utilizzano più funzioni finestra senza diventare difficili da leggere o mantenere. Imparerai come combinare le funzioni di classificazione con i totali parziali, come applicare diverse partizioni nella stessa query e come evitare errori comuni come l'ordinamento errato all'interno OVER() o il nesting non necessario.

Continuerai con il corso "Window Functions (Funzioni Finestra)", completando le parti 8, 9 e 10, dove vengono trattati modelli più complessi e realistici. Il set di esercizi "Window Functions (Funzioni Finestra)" aiuta a rafforzare questi modelli attraverso la ripetizione pratica, mentre il cheat sheet "SQL Window Functions (Funzioni Finestra)" diventa il tuo riferimento quotidiano quando scrivi query con funzioni finestra al lavoro.

A chi è rivolto questo Starter Pack

Questo piano è ideale se conosci già le basi dell'SQL e desideri passare a un lavoro più analitico. È adatto ad analisti di dati, esperti di marketing, specialisti di prodotto e sviluppatori che lavorano con report o metriche.

Se sei completamente nuovo all'SQL, è meglio iniziare con i fondamenti dell'SQL prima di passare alle funzioni finestra.

Il tuo piano di gennaio in una frase

Una competenza SQL avanzata, quattro settimane di studio mirato e tre risorse comprovate di LearnSQL.it.

Inizia con il corso Window Functions (Funzioni Finestra), tieni aperto il cheat sheet mentre impari e usa il set di esercizi per fissare tutto. Entro la fine di gennaio, le funzioni finestra non ti sembreranno più avanzate, ma naturali.