MulaiMulai sekarang secara gratis

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

Lihat Kursus

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 JOIN CTE tersebut ke tabel league menggunakan country_id dari CTE match_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;
Edit dan Jalankan Kode