MulaiMulai sekarang secara gratis

Menggunakan CASE dan AVG untuk menurunkan fraksi

Pernyataan CASE akan mengembalikan nilai apa pun yang Anda tentukan dalam klausa THEN. Ini adalah alat yang sangat kuat untuk perhitungan dan manipulasi data yang andal saat digunakan bersama dengan pernyataan agregat. Salah satu tugas utama yang dapat Anda lakukan adalah menggunakan CASE di dalam fungsi AVG untuk menghitung fraksi informasi dalam basis data Anda.

Berikut contoh cara menyusunnya:

AVG(CASE WHEN condition_is_met THEN 1
         WHEN condition_is_not_met THEN 0 END)

Dengan pendekatan ini, penting untuk menentukan dengan tepat catatan mana yang dihitung sebagai 0, jika tidak, perhitungan Anda mungkin tidak benar!

Tugas Anda adalah meninjau jumlah kemenangan, kekalahan, dan hasil imbang di setiap negara. Tabel matches telah difilter untuk menyertakan semua pertandingan dari musim 2013/2014 dan 2014/2015.

Latihan ini adalah bagian dari kursus

Manipulasi Data di SQL

Lihat Kursus

Petunjuk latihan

  • Di dalam fungsi AVG(), lengkapi pernyataan CASE dengan memeriksa apakah m.home_goal tidak sama dengan m.away_goal, dan berikan nilai 0 jika kondisi ini terpenuhi.
  • Ulangi proses ini untuk membandingkan gol kandang dan tandang pada '2014/2015', dengan alias ties_2014_2015.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

SELECT 
	c.name AS country,
    -- Calculate the fraction of tied games in each season
	___(___ ___ m.season='2013/2014' AND m.home_goal = m.away_goal THEN 1
			WHEN m.season='2013/2014' AND m.home_goal ___ m.away_goal THEN ___
			END) AS ties_2013_2014,
	___(___ ___ m.season='2014/2015' ___ ___ = ___ ___ ___
			WHEN m.season='2014/2015' ___ m.home_goal != m.away_goal THEN ___
			___) AS ___
FROM country AS c
LEFT JOIN matches AS m
ON c.id = m.country_id
GROUP BY country;
Edit dan Jalankan Kode