ऐसा लगता है कि इसे आसानी से विंडो फ़ंक्शंस का उपयोग करके किया जा सकता है:
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;
मुझे places
. की गणना करने का तर्क समझ में नहीं आता है हालांकि स्तंभ।