Estadísticas resumidas y funciones de ventana de PostgreSQL
Michel Semaan
Data Scientist
LAST_VALUE
LAST_VALUE(City) OVER (
ORDER BY Year ASC
RANGE BETWEEN
UNBOUNDED PRECEDING AND
UNBOUNDED FOLLOWING
) AS Last_City
RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWINGLAST_VALUE devolvería el valor de la fila en la columna City.ROWS BETWEEN [START] AND [FINISH]n PRECEDING: n filas antes de la fila actualCURRENT ROW: la fila actualn FOLLOWING: n filas después de la fila actualEjemplos
ROWS BETWEEN 3 PRECEDING AND CURRENT ROWROWS BETWEEN 1 PRECEDING AND 1 FOLLOWINGROWS BETWEEN 5 PRECEDING AND 1 PRECEDINGConsulta
SELECT
Year, COUNT(*) AS Medals
FROM Summer_Medals
WHERE
Country = 'RUS'
AND Medal = 'Gold'
GROUP BY Year
ORDER BY Year ASC;
Resultado
| Year | Medals |
|------|--------|
| 1996 | 36 |
| 2000 | 66 |
| 2004 | 47 |
| 2008 | 43 |
| 2012 | 47 |
Consulta
WITH Russia_Medals AS (...)
SELECT
Year, Medals,
MAX(Medals)
OVER (ORDER BY Year ASC) AS Max_Medals
FROM Russia_Medals
ORDER BY Year ASC;
Resultado
| Year | Medals | Max_Medals |
|------|--------|------------|
| 1996 | 36 | 36 |
| 2000 | 66 | 66 |
| 2004 | 47 | 66 |
| 2008 | 43 | 66 |
| 2012 | 47 | 66 |
Consulta
WITH Russia_Medals AS (...)
SELECT
Year, Medals,
MAX(Medals)
OVER (ORDER BY Year ASC) AS Max_Medals,
MAX(Medals)
OVER (ORDER BY Year ASC
ROWS BETWEEN
1 PRECEDING AND CURRENT ROW)
AS Max_Medals_Last
FROM Russia_Medals
ORDER BY Year ASC;
Resultado
| Year | Medals | Max_Medals | Max_Medals_Last |
|------|--------|------------|-----------------|
| 1996 | 36 | 36 | 36 |
| 2000 | 66 | 66 | 66 |
| 2004 | 47 | 66 | 66 |
| 2008 | 43 | 66 | 47 |
| 2012 | 47 | 66 | 47 |
Consulta
WITH Russia_Medals AS (...)
SELECT
Year, Medals,
MAX(Medals)
OVER (ORDER BY Year ASC
ROWS BETWEEN
CURRENT ROW AND 1 FOLLOWING)
AS Max_Medals_Next
FROM Russia_Medals
ORDER BY Year ASC;
Resultado
| Year | Medals | Max_Medals_Next |
|------|--------|-----------------|
| 1996 | 36 | 66 |
| 2000 | 66 | 66 |
| 2004 | 47 | 47 |
| 2008 | 43 | 47 |
| 2012 | 47 | 47 |
Estadísticas resumidas y funciones de ventana de PostgreSQL