행 번호 지정

Snowflake의 Window 함수

Jake Roach

Field Data Engineer

윈도우 함수

행의 집합(윈도우)에 걸쳐 계산을 수행하고 각 행에 대해 값을 반환합니다.

$$

$$

순위 매기기

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

집계

  • COUNT, SUM, AVG
Snowflake의 Window 함수

윈도우 함수

윈도우 함수는 새로운 유형의 질문에 답할 수 있게 해 줍니다.

$$

  • 각 장소에서 세 번째로 인기 있는 콘서트는?
  • 특정 상품의 매출은 일별로 어떻게 변했나?
  • 시청률의 이동 평균 추세는 상승인가 하락인가?
Snowflake의 Window 함수

전통적 함수

전통적인 집계 함수는 GROUP BY 절이 필요합니다.

집계 함수의 시각적 표현.

Snowflake의 Window 함수

윈도우 함수

윈도우 함수 출력의 시각적 표현.

                                                 GROUP BY가 필요하지 않습니다!

Snowflake의 Window 함수

행 번호 지정

SELECT
    <other-fields>,

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

FROM SCHEMA.table

...;

ROW_NUMBER()는 결과 집합의 각 레코드에 행 번호를 부여합니다.

$$

  • OVER()가 윈도우를 정의
  • 결과 열에 별칭 지정
  • GROUP BY 없음!
Snowflake의 Window 함수

콘서트 참석 데이터

SELECT
    customer_id,
    event_name,

    -- 결과 집합의 각 레코드에
    -- 행 번호를 지정

    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 ...)

Snowflake의 Window 함수

연습해 봅시다!

Snowflake의 Window 함수

Preparing Video For Download...