Snowflake のウィンドウ関数
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,
-- 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 ...)!
Snowflake のウィンドウ関数