Window Functions ใน Snowflake
Jake Roach
Field Data Engineer
ใช้คำนวณข้ามชุดของแถวที่เรียกว่า "window" และส่งคืนค่า สำหรับแต่ละแถว
$$
$$
การจัดอันดับ
RANK, DENSE_RANKFIRST_VALUE, LAST_VALUE, NTH_VALUELAG, LEADการรวมข้อมูล
COUNT, SUM, AVGWindow functions ช่วยตอบคำถามรูปแบบใหม่ได้!
$$
ฟังก์ชันการรวมข้อมูลแบบดั้งเดิมต้องใช้คำสั่ง GROUP BY


ไม่จำเป็นต้องใช้ GROUP BY!
SELECT
<other-fields>,
ROW_NUMBER() OVER(
ORDER BY <field>
) AS <alias>
FROM SCHEMA.table
...;
ฟังก์ชัน ROW_NUMBER() กำหนดหมายเลขแถวให้แต่ละระเบียนในผลลัพธ์
$$
OVER() กำหนด windowGROUP 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
$$
$$
จำ syntax ไว้: ROW_NUMBER() OVER( ORDER BY ...)!
Window Functions ใน Snowflake