En PostgreSQL, el LEAD()
La sintaxis de la función LEAD() se ve a continuación:
Syntax: LEAD(expression [, offset [, default_value]]) OVER ( [PARTITION BY partition_expression, ... ] ORDER BY sort_expression [ASC | DESC], ... )
Analicemos la sintaxis anterior:
- expresión
- El desplazamiento es un entero positivo que especifica el número de filas que se reenvían desde la fila actual. Generalmente es una expresión, subconsulta o columna. Si no se establece el desplazamiento, el valor predeterminado es 1.
- La cláusula PARTITION BY divide las filas en particiones. De forma predeterminada, toma el resultado de la consulta como una sola partición.
- ORDENAR POR
CREATE TABLE Match( year SMALLINT CHECK(year > 0), match_id INT NOT NULL, overs DECIMAL(10,2) NOT NULL, PRIMARY KEY(year,match_id) );
Ahora inserte algunos datos en él:
INSERT INTO Match(year, match_id, overs) VALUES (2018, 1, 140), (2018, 2, 174), (2018, 3, 130), (2019, 1, 90), (2019, 2, 100), (2019, 3, 120), (2020, 1, 50), (2020, 2, 70), (2020, 3, 20);
PLOMO()
WITH cte AS ( SELECT year, SUM(overs) overs FROM Match GROUP BY year ORDER BY year ) SELECT year, overs, LEAD(overs, 1) OVER ( ORDER BY year ) year_average FROM cte;
Producción:
Ejemplo 2:
PLOMO()
SELECT year, overs, match_id, LEAD(overs, 1) OVER ( PARTITION BY match_id ORDER BY year ) next_year_overs FROM Match;
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