Witajcie, mam problem z pewnym kodem integrującym się z bazą mysql. Wyswietlanie miejsca w rankingu na podstawie wyliczenia rekordów. Jednak z tego zapytania co wykombinowałem nawet jeśli kilka osób posiada taki sam rate to wszyscy dostaną to samo miejsce w rankingu.
Wykombinowałem coś takiego:
"SELECT rate, count FROM (SELECT COUNT(*) as count FROM `baza`) a CROSS JOIN (SELECT COUNT(*) as rate FROM `baza` WHERE `rate` > '%i' ORDER BY `rate` DESC) b"
SELECT * FROM baza ORDER BY rate DESC LIMIT;
Jeżeli "rate" jest jedyną wartością, która decyduje o miejscu, to nic innego nie wymyślisz. Możesz jednak dodać dodatkowe sortowanie po dacie - rosnąco. Dzięki temu, jeżeli nowy zawodnik otrzyma taki sam rate jak poprzedni, będzie "oczko niżej", bo wyrównał wynik.
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)