Redshift में CTEs का उपयोग

Redshift परिचय

Jason Myers

Principal Architect

Common table expressions (CTEs)

  • अस्थायी परिणाम सेट
  • क्वेरी सरल करें
  • सबक्वेरी का विकल्प
Redshift परिचय

सबक्वेरी और CTE संरचनाएँ

SELECT division_name,
       revenue_total
       -- राजस्व से शीर्ष 10 divisions के लिए सबक्वेरी
  FROM (SELECT division_id,
               SUM(revenue) AS revenue_total
          FROM orders
         GROUP BY division_id
         ORDER BY revenue_total DESC
         LIMIT 10) top_ten_divisions_by_rev
 WHERE revenue_total > 100000; 
-- राजस्व से शीर्ष 10 divisions के लिए CTE
WITH top_ten_divisions_by_rev AS (
  SELECT division_id,
         SUM(revenue) AS revenue_total
    FROM orders
   GROUP BY division_id
   ORDER BY revenue_total DESC
   LIMIT 10)

-- मुख्य क्वेरी SELECT division_id, revenue_total -- हमारे CTE से FROM top_ten_divisions_by_rev WHERE revenue_total > 100000;
Redshift परिचय

एकाधिक CTEs

-- राजस्व से शीर्ष 10 divisions CTE
WITH top_ten_divisions_by_rev AS(
  SELECT division_id,
         SUM(revenue) AS revenue_total
    FROM orders
   GROUP BY division_id
   ORDER BY revenue_total DESC
   LIMIT 10),

-- Division ID और नाम CTE division_names AS( SELECT id AS division_id, name AS division_name FROM divisions)
-- मुख्य क्वेरी
SELECT division_name,
       revenue_total
       -- Top 10 CTE से
  FROM top_ten_divisions_by_rev
  -- division नाम उपयोग करने के लिए जॉइन
  JOIN division_names USING (DIVISION_ID)
 WHERE revenue_total > 100000;
Redshift परिचय

एकाधिक CTEs, CTE जॉइन्स

```sql
-- division नाम चुनना
WITH division_names AS(
  SELECT id AS division_id,
         name AS division_name
    FROM divisions),
-- राजस्व से शीर्ष दस divisions चुनना
top_ten_divisions_by_rev AS(
  SELECT division_name,
         SUM(revenue) AS revenue_total
    FROM orders
    -- division_names CTE से जॉइन
    JOIN divisions USING (division_id)
   GROUP BY division_name
   ORDER BY revenue_total DESC
   LIMIT 10);

Kernighan's Law

हर कोई जानता है कि डिबगिंग, प्रोग्राम लिखने से दोगुनी कठिन होती है. तो यदि आप लिखते समय जितने चतुर हो सकते हैं उतने ही चतुर बनेंगे, तब आप डिबग कैसे करेंगे?

Redshift परिचय

CTE प्रदर्शन

  • सबक्वेरी जितना ही प्रदर्शन
  • दोबारा उपयोग हो तो सबक्वेरी से बेहतर

SQL कोड बनाम निष्पादन क्रम

Redshift परिचय

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

Redshift परिचय

Preparing Video For Download...