Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Pozycja w rankingu, grupowanie wyników
Siner
post
Post #1





Grupa: Zarejestrowani
Postów: 159
Pomógł: 6
Dołączył: 2.01.2004

Ostrzeżenie: (0%)
-----


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.


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
Pilsener
post
Post #2





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

Ostrzeżenie: (0%)
-----


Cytat
ponieważ pozycja jest naliczana przed grupowaniem


Spróbuj podzapytania:
  1. SELECT * FROM (SELECT * FROM TABLE) AS x
, najpierw pogrupuj, potem nalicz pozycję.
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 - 06:13