Snowflake의 Window 함수
Jake Roach
Field Data Engineer
행의 집합(윈도우)에 걸쳐 계산을 수행하고 각 행에 대해 값을 반환합니다.
$$
$$
순위 매기기
RANK, DENSE_RANKFIRST_VALUE, LAST_VALUE, NTH_VALUELAG, LEAD집계
COUNT, SUM, AVG윈도우 함수는 새로운 유형의 질문에 답할 수 있게 해 줍니다.
$$
전통적인 집계 함수는 GROUP BY 절이 필요합니다.


GROUP BY가 필요하지 않습니다!
SELECT
<other-fields>,
ROW_NUMBER() OVER(
ORDER BY <field>
) AS <alias>
FROM SCHEMA.table
...;
ROW_NUMBER()는 결과 집합의 각 레코드에 행 번호를 부여합니다.
$$
OVER()가 윈도우를 정의GROUP BY 없음!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 함수