फ़्रेम विंडो के साथ Lag/Lead
अवधि के अंतर की गणना करने और टाइम-सीरीज़ में अंतराल पहचानने के लिए LAG/LEAD को फ़्रेम विंडो के साथ मिलाएँ
फ़्रेम विंडो के साथ Lag/Lead, CoddyKit पर SQL Academy का एक निःशुल्क पाठ है। यह 4 में से 2वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह SQL Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। SQL Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
LAG/LEAD का पुनरावलोकन
LAG(col, n), विंडो में वर्तमान पंक्ति से n पंक्तियाँ पहले का मान लौटाता है। LEAD(col, n) आगे की पंक्ति देखता है।
SELECT day, revenue,
LAG(revenue) OVER (ORDER BY day) AS prev_day_revenue
FROM daily_revenue;डिफ़ॉल्ट के साथ LAG
तीसरा आर्ग्युमेंट तब का डिफ़ॉल्ट मान होता है, जब कोई पड़ोसी पंक्ति मौजूद न हो:
LAG(revenue, 1, 0) OVER (ORDER BY day)
-- Returns 0 instead of NULL for the very first row.अंतर की गणना
दिन-प्रतिदिन का बदलाव:
SELECT day, revenue,
revenue - LAG(revenue, 1, 0) OVER (ORDER BY day) AS delta
FROM daily_revenue;कई चरणों वाला LAG
N दिन पहले से तुलना करें — सप्ताह-दर-सप्ताह और वर्ष-दर-वर्ष तुलना में उपयोगी:
LAG(revenue, 7) OVER (ORDER BY day) -- 7 days ago
LAG(revenue, 365) OVER (ORDER BY day) -- 1 year agoपूर्वानुमान स्लॉट के लिए LEAD
"अगली घटना क्या है?" जैसे पैटर्न:
SELECT id, ts,
LEAD(ts) OVER (PARTITION BY user_id ORDER BY ts) AS next_ts,
LEAD(ts) OVER (PARTITION BY user_id ORDER BY ts) - ts AS gap_to_next
FROM events;प्रति-उपयोगकर्ता पैटर्न
LAG/LEAD, PARTITION BY का सम्मान करते हैं:
SELECT user_id, ts, action,
LAG(action) OVER (PARTITION BY user_id ORDER BY ts) AS prev_action
FROM events;
-- prev_action is the user's previous event, not globally.स्थिति में बदलाव पहचानना
LAG को CASE के साथ मिलाएँ:
SELECT id, status,
CASE WHEN status <> LAG(status) OVER (ORDER BY ts) THEN 'changed' ELSE 'same' END
FROM orders;FIRST_VALUE / LAST_VALUE
फ़्रेम के भीतर पहला या अंतिम मान:
FIRST_VALUE(status) OVER (PARTITION BY order_id ORDER BY ts) AS first_status
-- The status when the order was first seen.
LAST_VALUE(status) OVER (
PARTITION BY order_id ORDER BY ts
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS final_statusNTH_VALUE
क्रमबद्ध विंडो का Nवाँ मान:
NTH_VALUE(revenue, 3) OVER (
ORDER BY revenue DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
)
-- Third-highest revenue value.प्रति-समूह फ़्रेम फ़ंक्शन
समूहीकृत पड़ोसी पंक्तियों के लिए LAG को PARTITION BY के साथ मिलाएँ:
SELECT user_id, ts, page,
LAG(page) OVER (PARTITION BY user_id ORDER BY ts) AS prev_page,
LEAD(page) OVER (PARTITION BY user_id ORDER BY ts) AS next_page
FROM page_views;प्रदर्शन
विंडो फ़ंक्शन प्रत्येक partition के लिए एक बार क्रमबद्ध करते हैं। जब partition बड़े हों, तो (PARTITION BY, ORDER BY) कॉलम पर इंडेक्स बनाएँ।
पुनरावलोकन
LAG/LEAD पंक्ति-दर-पंक्ति तुलना को आसान बनाते हैं।
- डिफ़ॉल्ट मान NULL से बचाता है
- स्थिति में बदलाव पहचानने के लिए CASE के साथ मिलाएँ
- FIRST_VALUE/LAST_VALUE/NTH_VALUE इस परिवार को पूरा करते हैं
त्वरित जाँच
आप चाहते हैं कि प्रत्येक पंक्ति में उपयोगकर्ता की अगली घटना तक का अंतर (सेकंड में) शामिल हो। कौन-सा फ़ंक्शन उपयोग करेंगे?
एआई शिक्षक के साथ SQL सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 46
- पाठ
- 183
अक्सर पूछे जाने वाले प्रश्न
क्या “फ़्रेम विंडो के साथ Lag/Lead” पाठ निःशुल्क है?
हाँ—“फ़्रेम विंडो के साथ Lag/Lead” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और SQL Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। SQL Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“फ़्रेम विंडो के साथ Lag/Lead” में मैं क्या सीखूँगा?
अवधि के अंतर की गणना करने और टाइम-सीरीज़ में अंतराल पहचानने के लिए LAG/LEAD को फ़्रेम विंडो के साथ मिलाएँ आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ SQL Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या SQL Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर SQL Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 2वाँ पाठ है।
“फ़्रेम विंडो के साथ Lag/Lead” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस SQL Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर SQL Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- फ़्रेम क्लॉज़: ROWS बनाम RANGE
- फ़्रेम विंडो के साथ Lag/Lead
- NTILE और Cume_Dist से बकेट बनाना
- वास्तविक दुनिया की रिपोर्टिंग संरचनाएँ