PostgreSQL – Función LEAD

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *