İç içe yerleştirilmiş alt sorgularla CTE'ler
Eğer FROM kısmında iç içe ifadelerle birden fazla alt sorgu listelersen, sorgun muhtemelen uzun, karmaşık ve okunması zor hale gelir.
Birçok sorgu gelecekte kaydedilip tekrar çalıştırılmak üzere yazıldığından, düzgün bir düzen akıcı bir çalışma için kritik önemdedir. Alt sorguları CTE olarak düzenlemek uzun vadede sana zaman, alan ve kafa karışıklığı kazandırır!
Bu egzersiz, kursun bir parçasıdır
SQL ile Veri İşleme
Egzersiz talimatları
'2013/2014'sezonunun Ağustos ayındaki maçlardan toplam gol sayısını hesaplayan bir CTE tanımla.- İçteki alt sorguda yalnızca
'2013/2014'sezonunun Ağustos ayındaki maçları seçecek şekilde filtrele. - CTE'yi
match_listCTE'sindekicountry_id'yi kullanarak league tablosunaLEFT JOINile bağla.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
-- 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;