Zeilennummern zuweisen

Window Functions in Snowflake

Jake Roach

Field Data Engineer

Window-Funktionen

Wird verwendet, um eine Berechnung über ein "Fenster" von Zeilen durchzuführen und einen Wert für jede Zeile zurückzugeben

$$

$$

Rangfolge

  • RANK, DENSE_RANK
  • FIRST_VALUE, LAST_VALUE, NTH_VALUE
  • LAG, LEAD

Aggregation

  • COUNT, SUM, AVG
Window Functions in Snowflake

Window-Funktionen

Window-Funktionen helfen uns, neue Fragen zu beantworten!

$$

  • Was ist das drittbeliebteste Konzert an jedem Veranstaltungsort?
  • Wie haben sich die Verkäufe eines Artikels von Tag zu Tag verändert?
  • Steigt oder fällt mein gleitender Durchschnitt der Zuschauerzahlen?
Window Functions in Snowflake

Traditionelle Funktionen

Traditionelle Aggregatfunktionen müssen eine GROUP BY-Klausel haben.

Eine visuelle Darstellung einer Aggregatfunktion.

Window Functions in Snowflake

Window-Funktionen

Eine visuelle Darstellung des Outputs einer Window-Funktion.

                                                 Benötigen kein GROUP BY!

Window Functions in Snowflake

Zeilennummern zuweisen

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 Fenster
  • Alias für die Spalte
  • Kein GROUP BY!
Window Functions in Snowflake

Konzertbesucher

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

Lass uns üben!

Window Functions in Snowflake

Preparing Video For Download...