introduzione
Quando si tratta di aggregare dati in SQL, funzioni della finestra forniscono una maggiore flessibilità rispetto alle aggregazioni utilizzate insieme a GROUP BY
clausole. Sebbene entrambi gli approcci svolgano effettivamente funzioni simili, le funzioni finestra differiscono in virtù di come sono strutturati gli output. Nello specifico, le funzioni finestra applicano operazioni su a impostato di righe correlate, dove la relazione è determinata da qualche raggruppamento, o partizionedelle righe della tabella. E, a differenza delle loro controparti non a finestra che comprimono le righe in un’unica riga di output, Tutto le righe mantengono le loro identità separate e sono presenti nella tabella di output.
Questo comportamento è abbastanza diverso dal solito processo di aggregazione e può estendere notevolmente gli strumenti analitici disponibili oltre le semplici statistiche riassuntive. Ad esempio, le funzioni finestra ci consentono di calcolare somme parziali, medie mobili e persino misure statistiche come z-punteggi.
In questo post daremo uno sguardo all’anatomia e alle funzionalità di base delle funzioni della finestra SQL. Il focus qui è piuttosto rudimentale, quindi se non hai incontrato le funzioni delle finestre o hai un’esperienza limitata nell’usarle, si spera che questo possa interessarti.
Per questo post utilizzeremo alcuni dati di riepilogo di alto livello sulle competizioni della Coppa del Mondo FIFA tra il 1930 e il 2022. I piazzamenti e le statistiche sono stati tratti da Wikipedia e sono resi disponibili sotto la licenza Creative Commons Attribuzione Condividi allo stesso modo (CC-BY- SA). I dati e le relative informazioni possono essere trovati Qui. Ai fini di questo blog ho importato la tabella nel mio database PostgresSQL, ma se vuoi seguire puoi prendere una copia della tabella dal mio Deposito Git. Nel mio database questa tabella si chiama world_cup_placings
e un output è mostrato di seguito:
|year|start_date|end_date|host_country |first_place |second_place |third_place |fourth_place|total_teams|matches_played|total_goals|total_attendance|
|----|----------|--------|-------------|------------|--------------|-------------|------------|-----------|--------------|-----------|----------------|
|1930|13/07/30 |30/07/30|Uruguay |Uruguay |Argentina |United…
Fonte: towardsdatascience.com