MulaiMulai sekarang secara gratis

Rapikan dengan CTE

Pada bab 2, Anda membuat daftar negara beserta jumlah pertandingan di setiap negara yang memiliki lebih dari 10 total gol. Kueri pada latihan tersebut menggunakan subkueri dalam pernyataan FROM untuk menyaring pertandingan terlebih dahulu sebelum menghitungnya dalam kueri utama. Berikut adalah kueri yang Anda buat:

SELECT
  c.name AS country,
  COUNT(sub.id) AS matches
FROM country AS c
INNER JOIN (
  SELECT country_id, id 
  FROM match
  WHERE (home_goal + away_goal) >= 10) AS sub
ON c.id = sub.country_id
GROUP BY country;

Anda dapat mencantumkan satu (atau lebih) subkueri sebagai common table expressions (CTE) dengan mendeklarasikannya sebelum kueri utama, yang merupakan cara yang sangat baik untuk mengatur informasi dan menempatkannya dalam urutan yang logis.

Pada latihan ini, mari kita tulis ulang kueri serupa menggunakan CTE.

Latihan ini adalah bagian dari kursus

Manipulasi Data di SQL

Lihat Kursus

Petunjuk latihan

  • Lengkapi sintaks untuk mendeklarasikan CTE Anda.
  • Pilih country_id dan id pertandingan dari tabel match dalam CTE Anda.
  • LEFT JOIN CTE tersebut ke tabel league menggunakan country_id.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

-- Set up your CTE
___ match_list ___ (
    SELECT 
  		country_id, 
  		___
    FROM match
    WHERE (home_goal + away_goal) >= 10)
-- Select league name and count of matches from the CTE
SELECT
    l.name AS league,
    COUNT(match_list.id) AS matches
FROM league AS l
-- Join the CTE to the league table using country_id
LEFT JOIN ___ ON l.id = ___
GROUP BY l.name;
Edit dan Jalankan Kode