Bazy danych SQL - Ranking zapytanie SQL
Raduss - 09-04-2013, 11:31 Temat postu: Ranking zapytanie SQL Witam
Przerobiłem sobie statystykę TOP50 Godzin na Ranking TOP30 Graczy
Wszystko ładnie działa wczytuję mi osoby, które mają min 1 pkt wygrany w meczu
ale jak zrobić żeby wczytało również osoby, które mają np 1pkt przegrany i nie mają wygranego meczu?
Kod: | $sql = "SELECT user_id, username, user_session_time, user_allow_viewonline, user_jr, user_level, user_field_5, user_field_6, user_field_7, user_field_8
FROM " . USERS_TABLE . " WHERE (user_field_5 > '0') ORDER BY user_field_5 DESC LIMIT 30"; |
Wczytuje tylko osoby z user_field_5 czyli tabela: Wygrane
A jak ktoś przegrał to ma user_field_6 Przegrane i tej osoby nie pokazuje.
Bo ranking pokazuje tylko Wygrane.
Jak dodać żeby pokazywało nawet tych, którzy nie wygrali, a przegrali
Link: http://www.goldgame.pl/staty_1on1.php
L: Test
H: test
MQs - 09-04-2013, 14:37
Kod: | ...WHERE (user_field_5 > '0') ORDER BY... |
zamień na:
Kod: | ...WHERE user_field_5 > '0' OR user_field_6 > '0' ORDER BY... |
remisowych analogicznie np. "...OR user_field_7.."
Raduss - 10-04-2013, 08:58
Działa dzięki
AD1. Jak zrobić żeby najpierw patrzyło na Wygrane a potem na Przegranych czyli że
5. Ktoś tam 0 Wygranych 3 Przegrane 0 Remis
6. Ktoś tam 0 Wygranych 2 Przegrane 0 Remis
Jak widać ten 6 powinien być wyżej nad 5 bo ma mniej przegranych.
AD2. Jak zrobić żeby wyliczało średnią wygranej czyli:
1. 1 Wygrana 1 Przegrana = 0
2. 2 Wygrane 1 Przegrana = 1 i powinien znaleźć się wyżej nad tym 1
MQs - 10-04-2013, 10:50
Możesz sobie zapisać sortowanie za pomocą działania na wartościach pól np wg ilości punktów - wygrana=3, remis=1:
Kod: | ORDER BY (3*user_field_5 + user_field_7) DESC |
Ewentualnie dodać kolejne kryterium sortowania w przypadku takiej samej ilości punktów - tutaj np liczy przegrane, a potem (gdy nadal mamy równorzędne wyniki) ilość meczów:
Kod: | ORDER BY (3*user_field_5 + user_field_7) DESC, user_field_6 ASC, (user_field_5 + user_field_6 + user_field_7) DESC |
Nie znam pełnych zasad ustalania kolejności w tabeli, więc gotowego rozwiązania ci nie podam, ale chyba widać o co chodzi.
|
|
|