Присвоєння номерів рядків

Window Functions in Snowflake

Jake Roach

Field Data Engineer

Віконні функції

Використовують для обчислень у «вікні» рядків і повертають значення для кожного рядка

$$

$$

Рейтинги

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

Агрегація

  • COUNT, SUM, AVG
Window Functions in Snowflake

Віконні функції

Віконні функції допомагають відповідати на нові типи запитань!

$$

  • Який третій за популярністю концерт на кожному майданчику?
  • Як змінювалися продажі товару день за днем?
  • Чи мій ковзний середній переглядів зростає чи падає?
Window Functions in Snowflake

Традиційні функції

Традиційні агрегатні функції потребують виразу GROUP BY.

Візуальне подання агрегатної функції.

Window Functions in Snowflake

Віконні функції

Візуальне подання результату віконної функції.

                                                 Не потребують GROUP BY!

Window Functions in Snowflake

Присвоєння номерів рядків

SELECT
    <other-fields>,

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

FROM SCHEMA.table

...;

Функція ROW_NUMBER() присвоює номер рядка кожному запису у вибірці результатів

$$

  • OVER() визначає вікно
  • Задайте псевдонім для стовпця
  • Без GROUP BY!
Window Functions in Snowflake

Відвідуваність концертів

SELECT
    customer_id,
    event_name,

    -- Assign a row number to each 
    -- record in the result 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

$$

$$

Пам'ятайте синтаксис: ROW_NUMBER() OVER( ORDER BY ...)!

Window Functions in Snowflake

Давайте потренуємось!

Window Functions in Snowflake

Preparing Video For Download...