Comparación mes a mes
Para comparar meses, necesitas usar una de las siguientes funciones de ventana:
LAG(value, offset), que devuelve un valor un número de offset anterior a la fila actual del informe.LEAD(value, offset), que devuelve un valor un número de offset posterior a la fila actual del informe.
Tu objetivo es crear un informe que muestre las visualizaciones mes a mes de cada país. Algunos consejos:
- Necesitarás agrupar las fechas por meses. Para ello, puedes usar la función
DATE_PART(). - Puedes calcular el porcentaje de cambio con la siguiente fórmula:
(value)/(previous_value) - 1. - Si no se incluye un valor de offset en las funciones
LAG()oLEAD(), el valor predeterminado será 1.
Como la tabla termina a mitad de junio, la consulta está configurada para incluir datos solo hasta finales de mayo.
Este ejercicio forma parte del curso
Informes en SQL
Instrucciones del ejercicio
- A partir de
web_data, extraecountry_idy usa la funciónDATE_PART()para crearmonth. - Crea
month_viewsque obtenga el total de visualizaciones dentro del mes. - Crea
previous_month_viewsque obtenga el total de visualizaciones del mes pasado para el país dado. - Crea el campo
perc_changeque calcule el porcentaje de cambio de este mes respecto al mes pasado para el país dado, donde un valor negativo representa una pérdida de visualizaciones y un valor positivo representa crecimiento.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
SELECT
-- Pull month and country_id
____ AS month,
____,
-- Pull in current month views
____ AS month_views,
-- Pull in last month views
____ AS previous_month_views,
-- Calculate the percent change
____ AS perc_change
FROM ____
WHERE date <= '2018-05-31'
GROUP BY ____;