कोडिंग साक्षात्कार की तैयारी · पाठ

अपनी पहली CTE लिखना

WITH का मूल सिंटैक्स और सबक्वेरी की तुलना में CTE से पठनीयता कब सुधरती है, सीखें

पाठ 1, कुल 4 में से13 चरण

अपनी पहली CTE लिखना, CoddyKit पर कोडिंग साक्षात्कार की तैयारी का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह कोडिंग साक्षात्कार की तैयारी सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। कोडिंग साक्षात्कार की तैयारी पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

CTE वास्तव में क्या है

कॉमन टेबल एक्सप्रेशन (CTE) एक नामित, अस्थायी परिणाम-समुच्चय है, जिसे WITH कीवर्ड से परिभाषित किया जाता है और जो केवल एक क्वेरी की अवधि तक मौजूद रहता है। साक्षात्कारकर्ता CTE को पसंद करते हैं क्योंकि इससे पता चलता है कि आप तर्क को स्पष्ट रूप से व्यवस्थित कर सकते हैं या नहीं।

CTE को सबक्वेरी को नाम देने के तरीके की तरह समझिए, ताकि उसके बाद आने वाले मुख्य कथन में आप उसे तालिका की तरह संदर्भित कर सकें। यह कोई स्थायी ऑब्जेक्ट नहीं बनाता और क्वेरी पूरी होते ही समाप्त हो जाता है।

मूल WITH सिंटैक्स

हर CTE की शुरुआत WITH, एक नाम, AS कीवर्ड और कोष्ठक में लिखी गई क्वेरी से होती है। बंद कोष्ठक के बाद आप एक सामान्य कथन लिखते हैं, जो CTE को उसके नाम से उपयोग करता है।

  • WITH cte_name AS ( ... ) ब्लॉक को परिभाषित करता है।
  • कोष्ठक के ठीक बाद आने वाली क्वेरी मुख्य क्वेरी होती है।
  • CTE का नाम उस तालिका की तरह व्यवहार करता है जिससे आप SELECT कर सकते हैं।
WITH recent_orders AS (
    SELECT *
    FROM orders
    WHERE order_date >= '2024-01-01'
)
SELECT *
FROM recent_orders;

सबक्वेरी का ही उपयोग क्यों न करें

यही तर्क FROM क्लॉज़ में इनलाइन सबक्वेरी के रूप में लिखा जा सकता है। तो साक्षात्कारकर्ता CTE के बारे में क्यों पूछते हैं?

  • पठनीयता: नामित चरण किसी विधि-विवरण की तरह ऊपर से नीचे पढ़ा जाता है।
  • पुनः उपयोग: सबक्वेरी दोहराने के बजाय आप उसी CTE का कई बार संदर्भ दे सकते हैं।
  • डिबगिंग की सुविधा: उसका निरीक्षण करने के लिए आप केवल CTE पर SELECT चला सकते हैं।

साक्षात्कार में आम तौर पर सही उत्तर यह है: जब CTE क्वेरी को पढ़ना और बनाए रखना आसान बनाए, तब उसका उपयोग कीजिए।

उदाहरण: पहले फ़िल्टर करना, फिर एग्रीगेट करना

मान लीजिए प्रश्न है: इस वर्ष दिए गए ऑर्डरों से कुल आय खोजिए। CTE आपको पहले फ़िल्टर करने के चरण को अलग रखने देता है, फिर नामित परिणाम पर एग्रीगेट करने देता है।

मुख्य क्वेरी recent_orders को ऐसे मानती है जैसे वह कोई वास्तविक तालिका हो, जिससे एग्रीगेशन साफ़ और स्पष्ट रहता है।

WITH recent_orders AS (
    SELECT amount
    FROM orders
    WHERE order_date >= '2024-01-01'
)
SELECT SUM(amount) AS total_revenue
FROM recent_orders;

आउटपुट स्तंभों के नाम देना

CTE के नाम के ठीक बाद स्तंभों की सूची देकर आप उसके द्वारा उपलब्ध कराए गए स्तंभों के नाम बदल सकते हैं। यह तब उपयोगी है जब आंतरिक क्वेरी व्यंजक बनाती हो या आपको आगे स्पष्ट नाम चाहिए हों।

यदि आप स्तंभों की सूची देते हैं, तो उसकी संख्या आंतरिक क्वेरी द्वारा लौटाए गए स्तंभों की संख्या के बराबर होनी चाहिए; अन्यथा डेटाबेस त्रुटि उत्पन्न करता है।

WITH revenue (region, total) AS (
    SELECT region, SUM(amount)
    FROM orders
    GROUP BY region
)
SELECT region, total
FROM revenue
ORDER BY total DESC;

CTE केवल एक नामित क्वेरी है

साक्षात्कारकर्ताओं को प्रभावित करने वाला एक मानसिक मॉडल यह है: CTE तार्किक रूप से अपनी परिभाषा को उसी स्थान पर रखने के बराबर है। डेटाबेस उसे इनलाइन करने या भौतिक रूप से संग्रहीत करने का विकल्प चुन सकता है, लेकिन अर्थ की दृष्टि से परिणाम वही रहता है जो सबक्वेरी को वहाँ चिपकाने पर मिलता।

इसका अर्थ है कि सामान्य SELECT में कानूनी हर चीज़ CTE के भीतर भी कानूनी है: जुड़ाव, GROUP BY, WHERE, विंडो फ़ंक्शन और बहुत कुछ।

गहरा उदाहरण: जुड़ाव के साथ CTE

जब आपको जुड़ाव के एक पक्ष को पहले से व्यवस्थित करना हो, तब CTE विशेष रूप से उपयोगी होते हैं। यहाँ हम पहले प्रत्येक ग्राहक के ऑर्डरों की गिनती निकालते हैं, फिर उसे ग्राहकों की तालिका से दोबारा जोड़ते हैं, ताकि हर ग्राहक की पंक्ति में उसका कुल आ जाए।

ध्यान दीजिए कि मुख्य क्वेरी लगभग अंग्रेज़ी जैसी पढ़ी जाती है: ग्राहकों से, उनकी ऑर्डर-गिनतियों से जुड़िए।

WITH order_counts AS (
    SELECT customer_id, COUNT(*) AS num_orders
    FROM orders
    GROUP BY customer_id
)
SELECT c.name, oc.num_orders
FROM customers c
JOIN order_counts oc
    ON oc.customer_id = c.id;

क्वेरी में CTE कहाँ रहता है

WITH ब्लॉक उस कथन से पहले आना चाहिए जो उसका उपयोग करता है। CTE केवल उसकी परिभाषा के तुरंत बाद आने वाले एकल कथन के लिए दिखाई देता है।

  • आप बाद की किसी अलग क्वेरी में CTE का संदर्भ नहीं दे सकते।
  • SELECT के लिए परिभाषित CTE को बाद में चलाए गए किसी दूसरे SELECT में दोबारा उपयोग नहीं किया जा सकता।
  • स्कोप उस सेमीकोलन के साथ समाप्त हो जाता है जो कथन को समाप्त करता है।

CTE, INSERT, UPDATE, DELETE के साथ काम करते हैं

एक सामान्य अगला प्रश्न होता है: CTE केवल SELECT तक सीमित नहीं हैं। अधिकांश आधुनिक डेटाबेस में आप डेटा-संशोधन कथनों के साथ भी WITH क्लॉज़ जोड़ सकते हैं।

इससे आप पंक्तियों का एक समुच्चय एक बार निकालकर उस पर कार्रवाई कर सकते हैं, जो WHERE क्लॉज़ के भीतर नेस्टेड सबक्वेरी की तुलना में कहीं अधिक स्पष्ट पढ़ता है।

WITH stale AS (
    SELECT id
    FROM sessions
    WHERE last_seen < NOW() - INTERVAL '30 days'
)
DELETE FROM sessions
WHERE id IN (SELECT id FROM stale);

शुरुआती लोगों की आम गलतियाँ

साक्षात्कारकर्ता इन गलतियों पर ध्यान देते हैं:

  • CTE के बाद मुख्य क्वेरी लिखना भूल जाना; अकेला WITH ब्लॉक पूरा कथन नहीं होता।
  • CTE और मुख्य क्वेरी के बीच सेमीकोलन रखना।
  • यह अपेक्षा करना कि CTE कई कथनों के बीच बना रहेगा।
  • वैकल्पिक स्तंभ-नाम सूची और आंतरिक क्वेरी के स्तंभों की संख्या का मेल न होना।

साक्षात्कार में CTE के बारे में कैसे बात करें

जब आपसे किसी उलझी हुई सबक्वेरी को फिर से व्यवस्थित करने के लिए कहा जाए, तो अपनी सोच समझाते हुए कहिए: मैं इस फ़िल्टरिंग सबक्वेरी को recent_orders नामक CTE में अलग करूँगा, ताकि एग्रीगेशन साफ़-सुथरा पढ़े।

यह दिखाना कि आप CTE का चुनाव स्पष्टता और पुनः उपयोग के लिए करते हैं, बिना सोचे-समझे नहीं, मध्य-स्तर की परिपक्वता का संकेत देता है। यह भी बताइए कि CTE अपने-आप क्वेरी को तेज़ नहीं बनाता; इसका मुख्य लाभ पठनीयता है।

त्वरित जाँच

बुनियादी CTE वाक्य-विन्यास और दायरे की अपनी समझ जाँचिए।

पुनरावलोकन: आपका पहला CTE

आपने सीखा कि CTE, WITH name AS ( ... ) का उपयोग करके किसी अस्थायी परिणाम-समुच्चय को नाम देता है और फिर अगले कथन में उसे तालिका की तरह संदर्भित करता है।

  • CTE, अंतर्निहित उप-क्वेरी की तुलना में पठनीयता, पुनः उपयोग और त्रुटि-निवारण क्षमता बेहतर बनाते हैं।
  • दायरा एक ही कथन तक सीमित होता है; उसके बाद वे समाप्त हो जाते हैं।
  • वे SELECT तथा INSERT/UPDATE/DELETE के साथ काम करते हैं।
  • वे अपने-आप प्रदर्शन नहीं बढ़ाते हैं।

अगला विषय: कई CTE को एक क्रमिक प्रक्रिया में जोड़ना।

शुरुआत निःशुल्क

एआई शिक्षक के साथ कोडिंग साक्षात्कार की तैयारी सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
90
पाठ
360

अक्सर पूछे जाने वाले प्रश्न

क्या “अपनी पहली CTE लिखना” पाठ निःशुल्क है?

हाँ—“अपनी पहली CTE लिखना” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और कोडिंग साक्षात्कार की तैयारी पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। कोडिंग साक्षात्कार की तैयारी पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“अपनी पहली CTE लिखना” में मैं क्या सीखूँगा?

WITH का मूल सिंटैक्स और सबक्वेरी की तुलना में CTE से पठनीयता कब सुधरती है, सीखें आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ कोडिंग साक्षात्कार की तैयारी का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या कोडिंग साक्षात्कार की तैयारी शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर कोडिंग साक्षात्कार की तैयारी शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।

“अपनी पहली CTE लिखना” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस कोडिंग साक्षात्कार की तैयारी पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर कोडिंग साक्षात्कार की तैयारी पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. अपनी पहली CTE लिखना
  2. कई CTE को जोड़ना
  3. CTE बनाम सबक्वेरी बनाम अस्थायी तालिका
  4. नेस्टेड क्वेरी को CTE में पुनर्गठित करना
← कोडिंग साक्षात्कार की तैयारी पर वापस जाएँ