![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 297 Pomógł: 0 Dołączył: 17.01.2003 Skąd: Tarnów Ostrzeżenie: (0%) ![]() ![]() |
Zapytańko odnośnie generowania wyników
Mam taką tablice w mysql rattings
Wyniki w tabeli Kod id|ip|rok|autor|game|kateg.|carid|score 1|IP-1|2005|lol|cmr2|1|2|10 2|IP-2|2005|lol|cmr2|1|2|7 3|IP-1|2005|lol|cmr2|2|3|9 4|IP-2|2005|lol|cmr2|2|3|7 5|IP-1|2005|lol2|rbr|1|2|10 6|IP-2|2005|lol2|rbr|1|2|8 7|IP-1|2005|lol2|rbr|1|4|7 Zasada działania prosta każdy oddaje głos tylko 1 raz na konkretny samochód z gry Teraz nie wiem jak się zabrać do wyświetlenia wyników z całości i posortowania wq AVG(r_score) uwzględniając tylko wiadome ROK oraz AUTORA danego samochodu Wynik którybym chciał osiągnąć to Pozycja|Nick|Score 1. LOL2 - 8.33 2. LOL - 8.25 Proszę o jakieś sugestie jak się do tego zabrać - głównie mnie interesuje co napierw trzeba wyliczyć Z góry dzięki za pomoc Ten post edytował JOHNY 11.01.2006, 22:32:25 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 297 Pomógł: 0 Dołączył: 17.01.2003 Skąd: Tarnów Ostrzeżenie: (0%) ![]() ![]() |
Troche mi się koncepcja zminiła - tak by to wyglądało w moim przypadku
TABELA ID|ROK|AUTOR|GAME|KATEGORIA|CAR_ID|SCORES średnia ważona (SW) = (g / (g+m)) *s + (m / (g+m)) * S gdzie: s - średnia oceny dla danego CAR_ID z uwzględnieniem ROK|AUTOR|GAME|KATEGORIA g - liczba oddanych głosów na CAR_ID z j.w m - minimalna liczba głosów ogółem jako stała czyli na 10 głosów żeby się znaleść na liście - ( w skrypcie dla sprawdzenia wymagań najlepiej wyciągnąć jako count(AUTOR) .... WHERE rok=ROK) S - średnia wszystkich głosów na wszystko - to akurat proste SW - średnia ważona dla poszczególnych CAR_ID wg wzoru SR-WK - średnia dla wyników SW dla danego autora Tylko teraz pytanie czy np za pomocą operacji na 1 tablicy można to wszystko zrobić za pomocą jednego zapytania używając LEFT JOIN (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) Ten post edytował JOHNY 17.01.2006, 16:57:35 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 05:07 |