Calcular el porcentaje con CASE y AVG
Las sentencias CASE
devolverán cualquier valor que especifiques en tu cláusula THEN
. Esta es una herramienta increíblemente potente para realizar cálculos sólidos y manipular datos cuando se utiliza junto con una sentencia agregada. Una tarea clave que puedes realizar es utilizar CASE
dentro de una función AVG
para calcular un porcentaje de información en tu base de datos.
Aquí tienes un ejemplo de cómo configurarlo:
AVG(CASE WHEN condition_is_met THEN 1
WHEN condition_is_not_met THEN 0 END)
Con este enfoque, es importante especificar exactamente qué registros cuentan como 0
. ¡De lo contrario, tus cálculos pueden no ser correctos!
Tu tarea es examinar el número de victorias, derrotas y empates en cada país. La tabla matches
está filtrada para incluir todos los partidos de las temporadas 2013/2014 y 2014/2015.
Este ejercicio forma parte del curso
Manipulación de datos en SQL
Ejercicio interactivo práctico
Pruebe este ejercicio completando este código de muestra.
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;