sql >> Base de Datos >  >> RDS >> PostgreSQL

Tabla de consulta con la suma de TODAS las posiciones anteriores, excluyendo la posición actual

Parece que esto se puede hacer fácilmente usando funciones de ventana:

select id, date, position, name, 
       row_number(*) over (partition by name, date order by id) as races,
       count(*) filter (where position = 1) over (partition by name, date)  as wins
from the_table;

No entiendo la lógica para calcular los places aunque columna.