Introducción

Estadísticas resumidas y funciones de ventana de PostgreSQL

Michel Semaan

Data Scientist

Motivación

Total de medallas de oro de Estados Unidos en los Juegos Olímpicos de verano desde 2004 y total actualizado

| Year | Medals | Medals_RT |
|------|--------|-----------|
| 2004 | 116    | 116       |
| 2008 | 125    | 241       |
| 2012 | 147    | 388       |

Campeón reinante en lanzamiento de disco

| Year | Champion | Last_Champion | Reigning_Champion |
|------|----------|---------------|-------------------|
| 1996 | GER      | null          | false             |
| 2000 | LTU      | GER           | false             |
| 2004 | LTU      | LTU           | true              |
| 2008 | EST      | LTU           | false             |
| 2012 | GER      | EST           | false             |
Estadísticas resumidas y funciones de ventana de PostgreSQL

Esquema del curso

  1. Introducción a las funciones de ventana
  2. Obtención, clasificación y paginación
  3. Funciones y marcos de ventana agregados
  4. Más allá de las funciones de ventana
Estadísticas resumidas y funciones de ventana de PostgreSQL

Conjunto de datos sobre los Juegos Olímpicos de verano

  • Cada fila representa una medalla otorgada en los Juegos Olímpicos de verano.

Columnas

  • Year, City
  • Sport, Discipline, Event
  • Athlete, Country, Gender
  • Medal
Estadísticas resumidas y funciones de ventana de PostgreSQL

Funciones de ventana

  • Realiza una operación en un conjunto de filas que están relacionadas de alguna manera con la fila actual.
  • Similar a las funciones agregadas de GROUP BY, pero todas las filas permanecen en la salida.

Usos

  • Obtener valores de filas anteriores o posteriores (por ejemplo, obtener el valor de la fila anterior)
    • Determinar el estatus de campeón reinante
    • Calcular el crecimiento a lo largo del tiempo
  • Asignar puestos ordinales (1.º, 2.º, etc.) a las filas en función de la posición de sus valores en una lista ordenada
  • Totales actualizados, medias móviles
Estadísticas resumidas y funciones de ventana de PostgreSQL

Números de fila

Consulta

SELECT
  Year, Event, Country
FROM Summer_Medals
WHERE
  Medal = 'Gold';

Resultado

| Year | Event                      | Country |
|------|----------------------------|---------|
| 1896 | 100M Freestyle             | HUN     |
| 1896 | 100M Freestyle For Sailors | GRE     |
| 1896 | 1200M Freestyle            | HUN     |
| ...  | ...                        | ...     |
Estadísticas resumidas y funciones de ventana de PostgreSQL

Introduce ROW_NUMBER

Consulta

SELECT
  Year, Event, Country,
  ROW_NUMBER() OVER () AS Row_N
FROM Summer_Medals
WHERE
  Medal = 'Gold';

Resultado

| Year | Event                      | Country | Row_N |
|------|----------------------------|---------|-------|
| 1896 | 100M Freestyle             | HUN     | 1     |
| 1896 | 100M Freestyle For Sailors | GRE     | 2     |
| 1896 | 1200M Freestyle            | HUN     | 3     |
| ...  | ...                        | ...     | ...   |
Estadísticas resumidas y funciones de ventana de PostgreSQL

Anatomía de una función de ventana

Consulta

SELECT
  Year, Event, Country,
  ROW_NUMBER() OVER () AS Row_N
FROM Summer_Medals
WHERE
  Medal = 'Gold';
  • FUNCTION_NAME() OVER (...)
    • ORDER BY
    • PARTITION BY
    • ROWS/RANGE PRECEDING/FOLLOWING/UNBOUNDED
Estadísticas resumidas y funciones de ventana de PostgreSQL

¡Vamos a practicar!

Estadísticas resumidas y funciones de ventana de PostgreSQL

Preparing Video For Download...