CTE dengan subkueri bertingkat
Jika Anda mendapati diri Anda membuat beberapa subkueri di klausa FROM dengan pernyataan bertingkat, kueri Anda kemungkinan akan menjadi panjang, kompleks, dan sulit dibaca.
Karena banyak kueri ditulis dengan tujuan untuk disimpan dan dijalankan ulang di masa mendatang, pengaturan yang baik adalah kunci alur kerja yang lancar. Menata subkueri sebagai CTE akan menghemat waktu, ruang, dan kebingungan dalam jangka panjang!
Latihan ini adalah bagian dari kursus
Manipulasi Data di SQL
Petunjuk latihan
- Deklarasikan sebuah CTE yang menghitung jumlah (total) gol dari pertandingan pada bulan Agustus di musim
'2013/2014'. - Saring daftar pada subkueri bagian dalam agar hanya memilih pertandingan di bulan Agustus pada musim
'2013/2014'. - Lakukan
LEFT JOINCTE tersebut ke tabel league menggunakancountry_iddari CTEmatch_list.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
-- 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;