Window Functions trong Snowflake
Jake Roach
Field Data Engineer
Dùng để tính toán trên một “cửa sổ” các hàng và trả về giá trị cho từng hàng
$$
$$
Xếp hạng
RANK, DENSE_RANKFIRST_VALUE, LAST_VALUE, NTH_VALUELAG, LEADTổng hợp
COUNT, SUM, AVGHàm cửa sổ giúp trả lời các câu hỏi mới!
$$
Hàm tổng hợp truyền thống phải có mệnh đề GROUP BY.


Không cần GROUP BY!
SELECT
<other-fields>,
ROW_NUMBER() OVER(
ORDER BY <field>
) AS <alias>
FROM SCHEMA.table
...;
Hàm ROW_NUMBER() gán số thứ tự cho từng bản ghi trong tập kết quả
$$
OVER() xác định cửa sổGROUP BY!SELECT
customer_id,
event_name,
-- Gán số thứ tự cho mỗi
-- bản ghi trong tập kết quả
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
$$
$$
Nhớ cú pháp: ROW_NUMBER() OVER( ORDER BY ...)!
Window Functions trong Snowflake