ComenzarEmpieza gratis

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

Ver curso

Instrucciones del ejercicio

  • Dentro de una función AVG(), completa la sentencia CASE comprobando si m.home_goal no es igual a m.away_goal, asignando un valor de 0 si se cumple esta condición.
  • Repite este proceso para comparar los goles en casa y fuera en '2014/2015', con el alias ties_2014_2015.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

SELECT 
	c.name AS country,
    -- Calculate the percentage 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_14,
	___(___ ___ 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;
Editar y ejecutar código