विंडो फ़ंक्शंस

Snowflake में डेटा पाइपलाइन ऑटोमेशन

Emily Melhuish

Technical Curriculum Developer, Snowflake

विंडो फ़ंक्शन क्या है?

रो को जोड़े बिना रो-अक्रॉस गणना करें

  • प्रत्येक रो के लिए उसके आस-पास के सेट से परिणाम — उसकी विंडो
  • GROUP BY के विपरीत: हर रो इन, हर रो आउट
  • OVER क्लॉज़ से परिभाषित

3 मुख्य श्रेणियाँ:

  • रैंकिंग: ROW_NUMBER(), RANK(), DENSE_RANK()
  • एग्रीगेशन: SUM(), AVG(), COUNT() with OVER()
  • नेविगेशन: LAG(), LEAD(), FIRST_VALUE(), LAST_VALUE()

अधिक जानकारी: DataCamp का Window Functions in Snowflake कोर्स

Snowflake में डेटा पाइपलाइन ऑटोमेशन

OVER() क्लॉज़

SELECT shipment_id
, region
, delivery_days
, AVG(delivery_days) 
    OVER ( PARTITION BY region ORDER BY dispatched_at ) AS avg_days_in_region 
FROM shipments;
SHIPMENT_ID REGION DELIVERY_DAYS RUNNING_AVG_DAYS_IN_REGION
SHP-001 EMEA 3 3.00
SHP-002 EMEA 5 4.00
SHP-003 EMEA 4 4.00
SHP-004 APAC 6 6.00
Snowflake में डेटा पाइपलाइन ऑटोमेशन

ROW_NUMBER बनाम RANK बनाम DENSE_RANK

SELECT
    shipment_id AS shipment, delivery_days AS days,
    ROW_NUMBER() OVER (ORDER BY delivery_days) AS row_number,
    RANK()       OVER (ORDER BY delivery_days) AS rank,
    DENSE_RANK() OVER (ORDER BY delivery_days) AS dense_rank
FROM shipments ORDER BY delivery_days;
SHIPMENT DELIVERY_DAYS ROW_NUMBER RANK DENSE_RANK
SHP-001 3 1 1 1
SHP-002 5 2 2 2
SHP-003 5 3 2 2
SHP-004 7 4 4 3
Snowflake में डेटा पाइपलाइन ऑटोमेशन

LAG और LEAD

इनपुट

SQL Lag और Lead इनपुट

आउटपुट

Lag और Lead आउटपुट

Snowflake में डेटा पाइपलाइन ऑटोमेशन

रनिंग टोटल और रोलिंग एवरेज

विंडो फ्रेम्स

Snowflake में डेटा पाइपलाइन ऑटोमेशन

ROWS बनाम RANGE फ्रेम

  • ROWS BETWEEN: भौतिक रो पोज़िशन गिनता है — मान से परे, सटीक ऑफ़सेट
-- ROWS: हमेशा ठीक N पूर्ववर्ती भौतिक रो लेता है
SUM(credits) OVER (ORDER BY month ROWS BETWEEN 2 PRECEDING AND CURRENT ROW)
-- वर्तमान रो और दो पूर्ववर्ती शामिल
  • RANGE BETWEEN: मान-आधारित; समान ORDER BY मान वाली रो को साथ समूहित करता है
-- RANGE: सीमा मान पर बंधी सभी रो शामिल
SUM(credits) OVER (ORDER BY month RANGE BETWEEN 2 PRECEDING AND CURRENT ROW)

केवल तभी RANGE लें जब लॉजिक मान सीमाओं पर आधारित हो

Snowflake में डेटा पाइपलाइन ऑटोमेशन

आइए अभ्यास करें!

Snowflake में डेटा पाइपलाइन ऑटोमेशन

Preparing Video For Download...