Cytat(ixox @ 26.09.2012, 12:32:21 )

SET @rank=0;
SELECT @rank:=@rank+1 AS rank, SUM( points ), id_user
FROM `statistics`
GROUP BY id_user
ORDER BY SUM( points ) DESC
Spróbuj tak. Tak na szybko.

dzięki

pomogło
działająca wersja dla wyszukania miejsca konkretnego użytkownika:
SET @rank=0;
SELECT *
FROM (
SELECT @rank := @rank +1 AS rank, SUM( points ) , id_user
FROM `statistics`
GROUP BY id_user
ORDER BY SUM( points ) DESC
) AS pozycja
WHERE pozycja.id_user =4
oraz działająca wersja dla wyszukania miejsca konkretnego użytkownika wg. punktacji z danego miesiąca:
SET @rank=0;
SELECT *
FROM (
SELECT @rank := @rank +1 AS rank, SUM( points ) , id_user
FROM (SELECT * FROM `statistics` WHERE DATE_FORMAT(DATE,'%m %Y')= DATE_FORMAT(now(),'%m %Y')) AS tymczas
GROUP BY id_user
ORDER BY SUM( points ) DESC
) AS pozycja
WHERE pozycja.id_user =4
zmasz może szybszą wersje:)

Cytat(sazian @ 26.09.2012, 21:57:14 )

jest fajniejszy sposób na numrowsa
SELECT *,@numrows:=@numrows+1 FROM tabela,(SELECT @numrows:=1) num
to też działa jak należy chodź wychodzi na to ze troche wolniejsze jest
rozwiązanie mojego zadanie wg. twojej podpowiedzi:
miejsce w całym rankingu
SELECT *
FROM (
SELECT *,sum(points),@numrows:=@numrows+1 AS miejsce FROM statistics,(SELECT @numrows:=0) num
GROUP BY id_user
ORDER BY SUM( points ) DESC
) AS pozycja
WHERE pozycja.id_user =3
miejsce w rankingu z ostatniego miesiaca
SELECT *
FROM (
SELECT *,sum(points),@numrows:=@numrows+1 AS miejsce FROM (SELECT * FROM `statistics` WHERE DATE_FORMAT(DATE,'%m %Y')= DATE_FORMAT(now(),'%m %Y')) AS tymczas,(SELECT @numrows:=0) num
GROUP BY id_user
ORDER BY SUM( points ) DESC
) AS pozycja
WHERE pozycja.id_user =3
dzieki!!