witam
mam tabelkę z czasami okrążeń wielu wyścigów, w niej kolumny: time, fk_race_id, fk_driver_id
z niej wyciągam np. najlepsze czasy kierowców: SELECT min(time) ... GROUP BY fk_driver_id
ale jak wyciągnąć ile razy kolejni kierowcy mieli najlepsze okrążenie w kolejnych wyścigach?
da się to zrobić z sql w ogóle?
przykładowo mam:


time fk_driver_id fk_race_id
48.212 1 1
48.123 1 1
48.344 1 1
48.117 2 1
47.998 2 1
48.234 2 1
48.212 1 2
48.123 1 2
48.344 1 2
48.117 2 2
47.998 2 2
48.234 2 2


wychodzi na to, że kierowca o id 2 miał w obu wyścigach (1 i 2) najlepszy czas okrążenia, a więc chciałbym dostać wynik na zasadzie:

driver_id | pos_1
1 | 0
2 | 2


a jeszcze ciekawiej byłoby gdyby się dało, dalsze pozycje pokazać, ile razy drugi czas, trzeci
w tym przypadku istotna rzecz: jeśli kierowca zrobił dwa najlepsze czasy wyścigu - to nie ma miejsc 1 i 2, tylko 1, a ranking 2 przypada następnemu w kolei (czyli zdobywcy trzeciego czasu dnia)

wtedy wynik wyglądałby tak:

driver_id | pos_1 | pos_2
1 | 0 | 2
2 | 2 | 0


jak widać kierowca o id 2 nie ma dwukrotnie rankingu i 1, i 2 choć w obu wyścigach zdobył po dwa najlepsze czasy. za swój lepszy czas uzyskał pozycje 1, a następny brany pod uwagę to najlepszy czas nie należący do już wyżej 'zarankingowanego' kierowcy

da się takie coś w ogóle z sql ugryźć czy skryptem muszę to przemielić?