Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> jedna prosta tabela i skomplikowane zapytanie o ranking
Mr PIG
post
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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 04:27