Blog de Gonzalo

Blog de programación de Gonzalo López

FUNCIÓN LEAD DE MYSQL

MYSQL

La función lead de mysql se utiliza para obtener el valor siguiente de la fila actual, es una función ventana. La función lead siempre se utiliza con over. Si no se incluye la cláusula over, se producirá un error. Ejemplo de la query:


SELECT 
  sales_employee,
  fiscal_year, 
  sale, 
  LEAD(sale) OVER (
    PARTITION BY sales_employee
    ORDER BY fiscal_year
  ) AS next_year_sale 
FROM 
  sales;
Una vez vista la query un ejemplo de la salida sería (dependiendo de los datos de la bd):

//La columna "next_year_sale" sería el resultado de la función lead
+----------------+-------------+--------+----------------+
| sales_employee | fiscal_year | sale   | next_year_sale |
+----------------+-------------+--------+----------------+
| Alice          |        2016 | 150.00 |         100.00 |
| Alice          |        2017 | 100.00 |         200.00 |
| Alice          |        2018 | 200.00 |           NULL |
| Bob            |        2016 | 100.00 |         150.00 |
| Bob            |        2017 | 150.00 |         200.00 |
| Bob            |        2018 | 200.00 |           NULL |
| John           |        2016 | 200.00 |         150.00 |
| John           |        2017 | 150.00 |         250.00 |
| John           |        2018 | 250.00 |           NULL |
+----------------+-------------+--------+----------------+

En el ejemplo anterior los datos están ordenados por nombre y hay que fijarse en el año.

Compartir en twitter