MulaiMulai sekarang secara gratis

Menggabungkan CTE

Sekarang setelah Anda membuat dua subkueri yang mengidentifikasi lawan tim kandang dan tandang, saatnya menata ulang kueri Anda dengan subkueri home dan away sebagai Common Table Expressions (CTE). Anda akan melihat bahwa kueri utama menyertakan frasa SELECT DISTINCT. Tanpa membatasi hanya pada pertandingan DISTINCT, Anda bisa mendapatkan catatan duplikat untuk setiap pertandingan yang dimainkan.

Lanjutkan membangun kueri untuk mengekstrak semua pertandingan yang dimainkan oleh Manchester United pada musim 2014/2015.

Latihan ini adalah bagian dari kursus

Manipulasi Data di SQL

Lihat Kursus

Petunjuk latihan

  • Deklarasikan CTE home dan away sebelum kueri utama Anda.
  • Gabungkan CTE Anda ke tabel match menggunakan LEFT JOIN.
  • Pilih data yang relevan dari CTE ke dalam kueri utama.
  • Pada kueri utama, pilih tanggal dari match, nama tim dari CTE, serta gol kandang/tandang dari match.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

-- Set up the home team CTE
___ ___ ___ (
  SELECT m.id, t.team_long_name,
	  CASE WHEN m.home_goal > m.away_goal THEN 'MU Win'
		   WHEN m.home_goal < m.away_goal THEN 'MU Loss' 
  		   ELSE 'Tie' END AS outcome
  FROM match AS m
  LEFT JOIN team AS t ON m.hometeam_id = t.team_api_id),
-- Set up the away team CTE
___ ___ (
  SELECT m.id, t.team_long_name,
	  CASE WHEN m.home_goal > m.away_goal THEN 'MU Loss'
		   WHEN m.home_goal < m.away_goal THEN 'MU Win' 
  		   ELSE 'Tie' END AS outcome
  FROM match AS m
  LEFT JOIN team AS t ON m.awayteam_id = t.team_api_id)
-- Select the date, team names and goals
SELECT DISTINCT
    ___.___,
    ___.___ AS home_team_name,
    ___.___ AS away_team_name,
    ___.___,
    m.away_goal
-- Join the CTEs onto the match table
FROM match AS m
___ JOIN ___ ON m.id = ___
___ JOIN ___ ON m.id = ___
WHERE m.season = '2014/2015'
      AND (home.team_long_name = 'Manchester United' 
           OR away.team_long_name = 'Manchester United');
Edit dan Jalankan Kode