Zapytanie MySQL budujące ranking

Witam serdecznie,

Mam następującą tabelę:

CREATE TABLE IF NOT EXISTS `baza_pkt` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `idusera` int(11) DEFAULT NULL,
  `pkt` int(11) DEFAULT '0',
  `datadodania` date NOT NULL,
  `rodzajpkt` int(11) NOT NULL DEFAULT '0',
  UNIQUE KEY `id_2` (`id`),
  KEY `gt_id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;

W tabeli znajdują się rekordy z punktami użytkowników.

Wpisów dla każdego usera są różne ilości (może być jeden, dwa… 10… 1000 itp).

 

Chciałbym zbudować ranking użytkowników (czyli zsumowane punkty dla każdego usera + posortowanie od największej do najmniejszej ilości pkt).

 

Ma ktoś może pomysł jak to zrobić?

 

Bardzo proszę o pomoc.

 

Próbowałem coś takiego:

SELECT id, idusera, pkt, rodzajpkt, FIND_IN_SET( pkt, (
SELECT GROUP_CONCAT( pkt
ORDER BY pkt DESC ) 
FROM cms_users_pkt )
) AS rank
FROM cms_users_pkt
ORDER BY rank ASC

Ale sortuje mi to po ilości punktów - bez uwzględnienia tego że parę userów może mieć po parę rekordów (nie sumuje ich)

 

Czy mógłbym prosić o pomoc?

 

Z góry dziękuje,

Northwest 

 

 

SELECT *, SUM(pkt) as suma_pkt
FROM baza_pkt
GROUP BY idusera
ORDER BY suma_pkt DESC

Głowy nie dam, ale chyba coś w ten deseń powinno działać.

Tylko to się nie sprawdzi w momencie gdy wybiorę sobie idusera = XX (nie pokaże mi który user jest konkretnie - nie wyświetlając wszystkiego  sad.gif

Nie wystarczyło by wyświetlić jeszcze kolumny z idusera, albo dodać do zapytania WHERE idusera=‘xxx’