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 कोर्स
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 |
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 |
इनपुट

आउटपुट


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 में डेटा पाइपलाइन ऑटोमेशन