FUNCIÓN LAG EN MYSQL
MYSQL
La función lag de mysql se utiliza para obtener el valor anterior de la fila actual, es una función ventana. La función lag 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,
LAG(sale, 1 , 0) OVER (
PARTITION BY sales_employee
ORDER BY fiscal_year
) 'previous_year_sale'
FROM
sales;
//La columna "previous_year_sale" sería el resultado de la función lead
+----------------+-------------+--------+--------------------+
| sales_employee | fiscal_year | sale | previous_year_sale |
+----------------+-------------+--------+--------------------+
| Alice | 2016 | 150.00 | 0.00 |
| Alice | 2017 | 100.00 | 150.00 |
| Alice | 2018 | 200.00 | 100.00 |
| Bob | 2016 | 100.00 | 0.00 |
| Bob | 2017 | 150.00 | 100.00 |
| Bob | 2018 | 200.00 | 150.00 |
| John | 2016 | 200.00 | 0.00 |
| John | 2017 | 150.00 | 200.00 |
| John | 2018 | 250.00 | 150.00 |
+----------------+-------------+--------+--------------------+
En el ejemplo anterior los datos están ordenados por nombre y hay que fijarse en el año. Compartir en twitter