Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Pozycja w rankingu, grupowanie wyników
Siner
post 7.06.2012, 08:56:54
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
Pilsener
post 11.06.2012, 00:01:32
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 Wersja Lo-Fi Aktualny czas: 15.06.2025 - 07:07