सबक्वेरी और कॉमन टेबल एक्सप्रेशंस

Snowflake SQL परिचय

George Boorman

Senior Curriculum Manager, DataCamp

सबक्वेरी

  • Nested क्वेरीज़
  • FROM, WHERE, HAVING या SELECT क्लॉज़ में इस्तेमाल
  • उदाहरण:
    SELECT column1 
    FROM table1 
    WHERE column1 = (SELECT column2 FROM table2 WHERE condition)
    
  • प्रकार: Correlated और uncorrelated subqueries
Snowflake SQL परिचय

Uncorrelated subquery

-- मुख्य क्वेरी उस पिज्जा को लौटाती है जिसकी कीमत सबक्वेरी में मिली अधिकतम कीमत के बराबर हो
SELECT pizza_id
FROM pizzas
-- Uncorrelated सबक्वेरी जो सबसे ऊँची पिज्जा कीमत पहचानती है
WHERE price = (
    SELECT MAX(price)
    FROM pizzas
)
  • सबक्वेरी मुख्य क्वेरी के साथ इंटरैक्ट नहीं करती
Snowflake SQL परिचय

Correlated subquery

  • सबक्वेरी मुख्य क्वेरी के कॉलम रेफ़र करती है
SELECT pt.name, 
       pz.price, 
       pt.category
FROM pizzas AS pz
JOIN pizza_type AS pt 
    ON pz.pizza_type_id = pt.pizza_type_id
WHERE pz.price = (
  -- हर पिज्जा category के लिए अधिकतम कीमत पहचानता है
    SELECT MAX(p2.price) -- अधिकतम कीमत
    FROM pizzas AS p2
    WHERE -- Correlated: outer क्वेरी का कॉलम इस्तेमाल
      p2.pizza_type_id = pz.pizza_type_id
)
Snowflake SQL परिचय

कॉमन टेबल एक्सप्रेशंस

सामान्य सिंटैक्स:

-- WITH कीवर्ड
WITH cte1 AS ( -- CTE नाम
        SELECT col_1, col_2
            FROM table1
    )
    ...
SELECT ... 
FROM cte1 -- CTE को क्वेरी करें
;
Snowflake SQL परिचय

कॉमन टेबल एक्सप्रेशंस

WITH max_price AS ( -- CTE जिसका नाम max_price है
    SELECT pizza_type_id, 
           MAX(price) AS max_price
    FROM pizzas
    GROUP BY pizza_type_id
)

-- मुख्य क्वेरी SELECT pt.name, pz.price, pt.category FROM pizzas AS pz JOIN pizza_type AS pt ON pz.pizza_type_id = pt.pizza_type_id JOIN max_price AS mp -- CTE max_price से जॉइन ON pt.pizza_type_id = mp.pizza_type_id WHERE pz.price < mp.max_price -- कीमत की तुलना max_price CTE कॉलम से
Snowflake SQL परिचय

मल्टिपल CTEs

-- कई CTEs को कॉमा से परिभाषित करें
WITH cte1 AS (
    SELECT ...
    FROM ...
),

cte2 AS ( SELECT ... FROM ... )
-- मुख्य क्वेरी जो दोनों CTEs को मिलाती है SELECT ... FROM cte1 JOIN cte2 ON ... WHERE ...
Snowflake SQL परिचय

CTEs क्यों उपयोग करें?

  • जटिल ऑपरेशंस मैनेज करना
  • मॉड्यूलर
  • पढ़ने में आसान
  • पुन: उपयोग योग्य
Snowflake SQL परिचय

अभ्यास करते हैं!

Snowflake SQL परिचय

Preparing Video For Download...