शुरू करेंमुफ़्त में शुरू करें

CTEs के साथ क्लीन अप करें

अध्याय 2 में, आपने उन देशों की सूची निकाली थी और प्रत्येक देश में उन मैचों की संख्या गिनी थी जिनमें कुल गोल 10 से अधिक थे. उस अभ्यास की क्वेरी ने मुख्य क्वेरी में गिनने से पहले मैचों को फ़िल्टर करने के लिए FROM स्टेटमेंट में एक सबक्वेरी का उपयोग किया था. नीचे वही क्वेरी दी गई है जो आपने लिखी थी:

SELECT
  c.name AS country,
  COUNT(sub.id) AS matches
FROM country AS c
INNER JOIN (
  SELECT country_id, id 
  FROM match
  WHERE (home_goal + away_goal) >= 10) AS sub
ON c.id = sub.country_id
GROUP BY country;

आप एक (या अधिक) सबक्वेरीज़ को अपनी मुख्य क्वेरी से पहले डिक्लेयर करके common table expressions (CTEs) के रूप में लिख सकते हैं. यह सूचना को व्यवस्थित करने और उसे तार्किक क्रम में रखने का बेहतरीन तरीका है.

इस अभ्यास में, आइए इसी तरह की क्वेरी को CTE का उपयोग करके फिर से लिखें.

यह अभ्यास पाठ्यक्रम का हिस्सा है

SQL में Data Manipulation

पाठ्यक्रम देखें

अभ्यास निर्देश

  • अपने CTE को डिक्लेयर करने के लिए सिंटैक्स पूरा करें.
  • अपनी CTE में match टेबल से country_id और मैच id सेलेक्ट करें.
  • country_id का उपयोग करके CTE को league टेबल से LEFT JOIN करें.

इंटरैक्टिव व्यावहारिक अभ्यास

इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।

-- Set up your CTE
___ match_list ___ (
    SELECT 
  		country_id, 
  		___
    FROM match
    WHERE (home_goal + away_goal) >= 10)
-- Select league name and count of matches from the CTE
SELECT
    l.name AS league,
    COUNT(match_list.id) AS matches
FROM league AS l
-- Join the CTE to the league table using country_id
LEFT JOIN ___ ON l.id = ___
GROUP BY l.name;
कोड संपादित करें और चलाएँ