CTE z zagnieżdżonymi podzapytaniami
Jeśli w klauzuli FROM umieszczasz wiele zagnieżdżonych podzapytań, zapytanie szybko staje się długie, skomplikowane i trudne do czytania.
Ponieważ wiele zapytań jest zapisywanych z myślą o ponownym użyciu, odpowiednia organizacja kodu jest kluczem do sprawnej pracy. Przekształcenie podzapytań w CTE oszczędzi ci czasu, miejsca i niepotrzebnych nieporozumień!
To ćwiczenie jest częścią kursu
Data Manipulation in SQL
Instrukcje do ćwiczenia
- Zadeklaruj CTE, który oblicza łączną liczbę goli z meczów rozegranych w sierpniu sezonu
'2013/2014'. - Ogranicz wewnętrzne podzapytanie tak, aby wybierało wyłącznie mecze z sierpnia sezonu
'2013/2014'. - Użyj
LEFT JOIN, aby połączyć CTE z tabelą ligi na podstawiecountry_idz CTEmatch_list.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
-- 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;