Window Functions in Snowflake
Jake Roach
Field Data Engineer
Usato per eseguire un calcolo su una "finestra" di righe e restituire un valore per ogni riga
$$
$$
Classifica
RANK, DENSE_RANKFIRST_VALUE, LAST_VALUE, NTH_VALUELAG, LEADAggregazione
COUNT, SUM, AVGLe funzioni finestra ci aiutano a rispondere a nuovi tipi di domande!
$$
Le funzioni di aggregazione tradizionali devono avere una clausola GROUP BY.


Non richiedono un GROUP BY!
SELECT
<other-fields>,
ROW_NUMBER() OVER(
ORDER BY <field>
) AS <alias>
FROM SCHEMA.table
...;
La funzione ROW_NUMBER() assegna un numero di riga a ogni record nel set di risultati
$$
OVER() definisce la finestraGROUP BY!SELECT
customer_id,
event_name,
-- Assegna un numero di riga a ogni
-- record nel set di risultati
ROW_NUMBER() OVER(
ORDER BY time_spent_minutes
) AS row_num
FROM concerts.attendance;
customer_id | event_name | row_num
------------- | ------------ | ---------
1931292 | Music Fest | 1
5462384 | Elton John | 2
7732891 | Coachella | 3
3124888 | Porch Fest | 4
$$
$$
Ricorda la sintassi: ROW_NUMBER() OVER( ORDER BY ...)!
Window Functions in Snowflake