Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pozycja w rankingu
Forum PHP.pl > Forum > Bazy danych > MySQL
Siner
Cześć,
staram się uzyskać pozycję w rankingu, ale mam inne dane niż w większości przykładów w internecie (np http://nospor.pl/mysql-faq.html#faq-8)
Tabela games:
Kod
id | user_id | points

Ranking składa się z najlepszego wyniku danego użytkownika, starałem się to zrobić tak:
  1. SET @m:=0;
  2. SELECT MAX(points) AS max_p, @m:=@m+1 AS rank, user_id FROM games GROUP BY games.user_id ORDER BY max_p DESC

jest źle,
wszystko w tym wypadku rozbija się o GROUP ponieważ pozycja jest naliczana przed grupowaniem.
  1. SET @m:=0; SELECT points AS max_p, @m:=@m+1 AS rank, user_id FROM games ORDER BY max_p DESC

W tym wypadku pozycja jest wyliczana ok, ale mam kilka wyników każdego użytkownika.

Z góry dzięki za pomoc.
Pilsener
Cytat
ponieważ pozycja jest naliczana przed grupowaniem


Spróbuj podzapytania:
  1. SELECT * FROM (SELECT * FROM TABLE) AS x
, najpierw pogrupuj, potem nalicz pozycję.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.