Menu
Coddy logo textTech

Funciones LEAD y LAG

Parte de la sección Fundamentos del Journey de SQL de Coddy. Lección 61 de 72.

Las funciones LEAD y LAG nos permiten acceder al valor de la fila actual con n pasos atrás o n pasos adelante.

Por ejemplo, si queremos calcular la proporción de los ingresos de una empresa para la fila actual y hace un mes, podemos extraer el valor del mes anterior:

idrevenuemonth
15325
24926
33937
47238
SELECT id, revenue, LAG(revenue, 1) OVER (ORDER BY MONTH) as prev_month_revenue
FROM table1 ORDER BY id

Esto creará la siguiente tabla:

idrevenueprev_month_revenue
1532 
2492532
3393492
4723393

De esta manera podemos calcular la proporción prev_month_revenue/revenue.

Si en cambio usáramos la función LEAD, tomaría los ingresos del mes siguiente de cada fila:

SELECT id, revenue, LEAD(revenue, 1) OVER (ORDER BY MONTH) as next_month_revenue
FROM table1 ORDER BY id
idrevenuenext_month_revenue
1532492
2492393
3393723
4723 
challenge icon

Desafío

Fácil

Tablas y columnas disponibles:

  • air_conditioners: id, efficiency, strength, month

Compara la eficiencia de cada acondicionador de aire con la del anterior.

Escribe una consulta que muestre la eficiencia de cada acondicionador de aire junto con la eficiencia del acondicionador de aire anterior instalado (según id). Además, calcula la diferencia de eficiencia entre el acondicionador de aire actual y el anterior. Ordena el resultado por id y efficiency en orden ascendente.

Columnas esperadas de salida:

  • id
  • efficiency
  • previous_efficiency (usando LAG)
  • efficiency_difference (eficiencia actual - eficiencia anterior)

Finalmente, incluye la consulta en otra consulta y filtra la primera fila, cuyo previous_efficiency (y, por lo tanto, efficiency_difference) está vacía, es decir, es NULL:

SELECT * FROM (
    -- Your query here
)
WHERE previous_efficiency IS NOT NULL

Pruébalo tú mismo

quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentos

Practica por tu cuenta: Playground de SQL