sql >> Database >  >> RDS >> PostgreSQL

Zoektabel met som van ALLE vorige posities, exclusief huidige positie

Het lijkt erop dat dit eenvoudig kan worden gedaan met behulp van vensterfuncties:

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;

Ik begrijp de logica niet om de places te berekenen kolom wel.



  1. Rijrangschikking in een MySQL-weergave

  2. Converteer een maandnummer naar de maandnaam in SQL Server (T-SQL)

  3. Oracle hoe een afbeelding in een blob-kolom te laden met sqlldr

  4. Werk elke rij bij met een willekeurige datetime tussen twee datums