Acceder a valores de la fila anterior
Al usar la función LAG() en una consulta, puedes acceder a filas anteriores a la actual.
Esta es la sintaxis:
LAG(numeric_expression) OVER ([PARTITION BY column] ORDER BY column)
En este ejercicio, usarás esta función en tu consulta. Analizarás las valoraciones de las tabletas de chocolate producidas por una empresa llamada "Fruition".
Esta empresa elabora chocolate con cacao procedente de distintas zonas del mundo.
Quieres comprobar si hay correlación entre el porcentaje de cacao y la puntuación recibida, para las tabletas que provienen del mismo lugar. Para ello, compararás el porcentaje de cacao de cada tableta con el porcentaje de la tableta que obtuvo la valoración anterior. Luego, calcularás la diferencia entre estos valores e interpretarás los resultados.
Este ejercicio forma parte del curso
Funciones para manipular datos en SQL Server
Instrucciones del ejercicio
- Crea una columna nueva que muestre el porcentaje de cacao de la tableta de chocolate que recibió una puntuación inferior, con cacao procedente del mismo lugar (el
broad_bean_origines el mismo). - Crea una columna nueva con la diferencia entre el porcentaje de cacao de la tableta actual y el porcentaje de la tableta anterior.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
SELECT
broad_bean_origin AS bean_origin,
rating,
cocoa_percent,
-- Retrieve the cocoa % of the bar with the previous rating
___(___)
OVER(___ broad_bean_origin ORDER BY ___) AS percent_lower_rating
FROM ratings
WHERE company = 'Fruition'
ORDER BY broad_bean_origin, rating ASC;