Menetapkan nomor baris

Fungsi Window di Snowflake

Jake Roach

Field Data Engineer

Fungsi jendela

Digunakan untuk melakukan perhitungan pada "jendela" baris dan mengembalikan nilai untuk setiap baris

$$

$$

Peringkat

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

Agregasi

  • COUNT, SUM, AVG
Fungsi Window di Snowflake

Fungsi jendela

Fungsi jendela membantu kita menjawab jenis pertanyaan baru!

$$

  • Apa konser ketiga terpopuler di setiap tempat?
  • Bagaimana penjualan item bervariasi hari ke hari?
  • Apakah rata-rata bergulir penayangan saya meningkat atau menurun?
Fungsi Window di Snowflake

Fungsi tradisional

Fungsi agregasi tradisional harus memiliki klausa GROUP BY.

Representasi visual dari fungsi agregasi.

Fungsi Window di Snowflake

Fungsi jendela

Representasi visual dari keluaran fungsi jendela.

                                                 Tidak memerlukan GROUP BY!

Fungsi Window di Snowflake

Menetapkan nomor baris

SELECT
    <other-fields>,

    ROW_NUMBER() OVER(
        ORDER BY <field>
    ) AS <alias>

FROM SCHEMA.table

...;

Fungsi ROW_NUMBER() menetapkan nomor baris untuk setiap catatan dalam hasil set

$$

  • OVER() mendefinisikan jendela
  • Alias kolom hasil
  • Tanpa GROUP BY!
Fungsi Window di Snowflake

Kehadiran konser

SELECT
    customer_id,
    event_name,

    -- Menetapkan nomor baris untuk setiap 
    -- catatan dalam hasil set

    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

$$

$$

Ingat sintaks: ROW_NUMBER() OVER( ORDER BY ...)!

Fungsi Window di Snowflake

Ayo berlatih!

Fungsi Window di Snowflake

Preparing Video For Download...