En LAG() que
A continuación se muestra la sintaxis de la función LAG():
Syntax: LAG(expression [, offset [, default_value]]) OVER ( [PARTITION BY partition_expression, ... ] ORDER BY sort_expression [ASC | DESC], ... )
Analicemos la sintaxis anterior:
- expresión
- compensar que eso viene compensar
- LAG() compensación de valor_predeterminado
- La función LAG() se aplica a las particiones creadas por la cláusula PARTITION BY. Si no se especifica la partición, la función trata todo el conjunto de resultados como una única partición.
- ORDEN POR LAG()
CREATE TABLE sales( year SMALLINT CHECK(year > 0), group_id INT NOT NULL, amount DECIMAL(10, 2) NOT NULL, PRIMARY KEY(year, group_id) );
Añádele algunos datos:
INSERT INTO sales(year, group_id, amount) VALUES (2018, 1, 1474), (2018, 2, 1787), (2018, 3, 1760), (2019, 1, 1915), (2019, 2, 1911), (2019, 3, 1118), (2020, 1, 1646), (2020, 2, 1975), (2020, 3, 1516);
Aquí el LAG()
WITH cte AS ( SELECT year, SUM(amount) amount FROM sales GROUP BY year ) SELECT year, amount, LAG(amount, 1) OVER ( ORDER BY year ) last_year_sales FROM cte;
Producción:
Ejemplo 2:
RETRASO()
SELECT year, amount, group_id, LAG(amount, 1) OVER ( PARTITION BY group_id ORDER BY year ) last_year_sales FROM sales;
Producción:
Publicación traducida automáticamente
Artículo escrito por RajuKumar19 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA