1. Nauka
  2. /
  3. Kursy
  4. /
  5. Data Manipulation in SQL

Connected

ćwiczenie

Używanie CASE i AVG do obliczania ułamków

Instrukcja CASE zwraca dowolną wartość podaną w klauzuli THEN. To niezwykle przydatne narzędzie do zaawansowanych obliczeń i przekształcania danych – szczególnie gdy połączymy je z funkcją agregującą. Jednym z kluczowych zastosowań jest umieszczenie CASE wewnątrz funkcji AVG, co pozwala wyliczyć udział określonych rekordów w całości danych.

Oto przykład takiego podejścia:

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

Przy tej metodzie ważne jest, aby dokładnie określić, które rekordy mają wartość 0 – inaczej wyniki obliczeń mogą być niepoprawne!

Twoim zadaniem jest zbadanie liczby zwycięstw, porażek i remisów w każdym kraju. Tabela matches jest przefiltrowana tak, aby obejmowała wszystkie mecze z sezonów 2013/2014 i 2014/2015.

Instrukcje

100 XP
  • Wewnątrz funkcji AVG() uzupełnij instrukcję CASE, sprawdzając, czy m.home_goal nie jest równe m.away_goal, i przypisując wartość 0, jeśli ten warunek jest spełniony.
  • Powtórz ten proces, porównując gole gospodarzy i gości w sezonie '2014/2015', nadając aliasa ties_2014_2015.