Window Functions in Snowflake
Jake Roach
Field Data Engineer
Wird verwendet, um eine Berechnung über ein "Fenster" von Zeilen durchzuführen und einen Wert für jede Zeile zurückzugeben
$$
$$
Rangfolge
RANK, DENSE_RANKFIRST_VALUE, LAST_VALUE, NTH_VALUELAG, LEADAggregation
COUNT, SUM, AVGWindow-Funktionen helfen uns, neue Fragen zu beantworten!
$$
Traditionelle Aggregatfunktionen müssen eine GROUP BY-Klausel haben.


Benötigen kein GROUP BY!
SELECT
<other-fields>,
ROW_NUMBER() OVER(
ORDER BY <field>
) AS <alias>
FROM SCHEMA.table
...;
Die Funktion ROW_NUMBER() weist jeder Zeile im Ergebnis eine Nummer zu
$$
OVER() definiert das FensterGROUP BY!SELECT
customer_id,
event_name,
-- Weist jeder Zeile im Ergebnis eine Nummer zu
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
$$
$$
Merke dir die Syntax: ROW_NUMBER() OVER( ORDER BY ...)!
Window Functions in Snowflake