Re: RANK() emulator?
Posted by:
Tom Grant
Date: November 09, 2009 05:38PM
Rick
That worked great on numbering row.
USE leaderboard;
SELECT @rank := 0;
SELECT @rank := @rank + 1 AS Rank, gamer,
point
FROM (
SELECT gamer, SUM(score) as point
FROM score_ranked s
GROUP BY gamer
Order By point DESC
) x;
Like you said will need to deal with ties.
In leaderboard it deal with ties on individual game ties with this query.
USE leaderboard;
set @rank := 0, @pos := 0, @game := null, @score := null;
select gamer, game, score,
greatest(
-- Calculate current row's rank
@rank := if(@game = game and @score = score, @rank, if(@game <> game, 1, @rank + 1)),
-- Save score and game for next row
least(0, @score := score),
least(0, @game := game)) as rank
from score order by game desc, score desc;
How would you incorporate your query into it and may it work?
Tom
Subject
Written By
Posted
September 21, 2009 01:25PM
September 21, 2009 01:33PM
September 21, 2009 02:09PM
September 21, 2009 04:23PM
November 07, 2009 10:27AM
November 11, 2009 03:18PM
November 08, 2009 03:52PM
November 09, 2009 10:56AM
November 09, 2009 04:42PM
Re: RANK() emulator?
November 09, 2009 05:38PM
November 09, 2009 08:18PM
November 10, 2009 06:21PM
November 10, 2009 09:22PM
November 11, 2009 09:19AM
November 11, 2009 08:36PM
November 12, 2009 08:39AM
November 12, 2009 08:00PM
November 13, 2009 06:41PM
November 17, 2009 10:35PM
November 19, 2009 10:35AM
November 17, 2009 10:38PM
November 19, 2009 10:16AM
November 19, 2009 10:32AM
November 19, 2009 10:39AM
November 19, 2009 10:45AM