Začněte nyníZačněte zdarma

CTE s vnořenými poddotazy

Pokud se ocitneš v situaci, kdy v klauzuli FROM vypisuješ více poddotazů s vnořenými příkazy, tvůj dotaz se rychle stane dlouhým, složitým a těžko čitelným.

Protože mnoho dotazů vzniká s tím, že je budeme ukládat a znovu spouštět, je přehledná organizace kódu klíčem k plynulé práci. Přeuspořádání poddotazů do CTE ti z dlouhodobého hlediska ušetří čas, místo i zbytečné zmatky!

Toto cvičení je součástí kurzu

Manipulace s daty v SQL

Zobrazit kurz

Pokyny k cvičení

  • Deklaruj CTE, která vypočítá celkový počet gólů ze zápasů v srpnu sezóny '2013/2014'.
  • Ve vnitřním poddotazu filtruj seznam tak, aby zahrnoval pouze zápasy z srpna sezóny '2013/2014'.
  • Připoj CTE k tabulce ligy pomocí LEFT JOIN na základě country_id z CTE match_list.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

-- Set up your CTE
___ match_list ___ (
    SELECT 
  		country_id,
  	   (home_goal + away_goal) AS goals
    FROM match
  	-- Create a list of match IDs to filter data in the CTE
    WHERE id IN (
       SELECT ___
       FROM ___
       WHERE season = ___ AND EXTRACT(MONTH FROM ___) = ___))
-- Select the league name and average of goals in the CTE
SELECT 
	___,
    ___(___)
FROM league AS l
-- Join the CTE onto the league table using country_id
LEFT JOIN ___ ON l.id = match_list.___
GROUP BY l.name;
Upravit a spustit kód