Menu
Coddy logo textTech

LEAD & LAG Functions

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 por n pasos hacia atrás o n pasos hacia adelante.

Por ejemplo, si queremos calcular la relación de los ingresos de una empresa para la fila actual y un mes atrás, 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 relación prev_month_revenue/revenue.

Si en cambio usáramos la LEAD función, tomaría los ingresos del próximo mes 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:

  • <strong>air_conditioners</strong>: <strong>id</strong>, <strong>efficiency</strong>, <strong>strength</strong>, <strong>month</strong>

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

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

Columnas de salida esperadas:

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

Finalmente, después de esta consulta, filtra la fila donde hay un previous_efficiency vacío o efficiency_difference vacío de esta manera:

SELECT * FROM (
    -- Your query here
)
WHERE previous_efficiency != 0

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