![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 14.05.2005 Ostrzeżenie: (0%) ![]() ![]() |
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ć? Ten post edytował Mr PIG 4.11.2011, 02:31:24 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 04:27 |