Cálculo de porcentagem com CASE e AVG
Os comandos CASE
retornarão qualquer valor que você especificar na cláusula THEN
. Essa é uma ferramenta incrivelmente poderosa para cálculos robustos e manipulação de dados quando usada em conjunto com uma cláusula de agregação. Uma tarefa importante que você pode realizar é usar CASE
dentro de uma função AVG
para calcular uma porcentagem de informações no seu banco de dados.
Aqui está um exemplo de como você pode configurar isso:
AVG(CASE WHEN condition_is_met THEN 1
WHEN condition_is_not_met THEN 0 END)
Com essa abordagem, é importante especificar com precisão quais registros contam como 0
, caso contrário, seus cálculos podem não estar corretos!
Sua tarefa é examinar o número de vitórias, derrotas e empates em cada país. A tabela matches
foi filtrada para incluir todas as partidas das temporadas 2013/2014 e 2014/2015.
Este exercício faz parte do curso
Manipulação de dados em SQL
Exercício interativo prático
Experimente este exercício preenchendo este código de exemplo.
SELECT
c.name AS country,
-- Count the home wins, away wins, and ties in each country
___(___ ___ m.home_goal ___ m.away_goal THEN m.id
END) AS home_wins,
___(___ ___ m.home_goal ___ m.away_goal THEN m.id
END) AS away_wins,
___(___ ___ m.home_goal ___ m.away_goal THEN m.id
END) AS ties
FROM country AS c
LEFT JOIN matches AS m
ON c.id = m.country_id
GROUP BY country;