Нужна помощь с использованием RANK в Excel (или MySql) для нескольких людей, набранные очки - PullRequest
0 голосов
/ 18 марта 2011

У меня есть набор данных:

Player  Year    Points
John    2010    60
Jane    2010    83
Stan    2010    42
Brian   2010    51
Phil    2010    65
John    2009    1
Jane    2009    44
Stan    2009    89
Brian   2009    4
Phil    2009    82
John    2008    93
Jane    2008    12
Stan    2008    31
Brian   2008    41
Phil    2008    63
John    2007    47
Jane    2007    73
Stan    2007    72
Brian   2007    17
Phil    2007    81

Я хочу получить очки и годы, оцениваемые ЛИЦОМ, а не в целом.Другими словами:

Player  Year    Points  Personal Rank
John    2010    60  2
Jane    2010    83  1
Stan    2010    42  3
Brian   2010    51  1
Phil    2010    65  3
John    2009    1   4
Jane    2009    44  3
Stan    2009    89  1
Brian   2009    4   4
Phil    2009    82  1
John    2008    93  1
Jane    2008    12  4
Stan    2008    31  4
Brian   2008    41  2
Phil    2008    63  4
John    2007    47  3
Jane    2007    73  2
Stan    2007    72  2
Brian   2007    17  3
Phil    2007    81  2

Возможно ли это сделать в Excel?

У меня также есть эти данные в MySql, если кто-то знает (или может указать мне правильное направление) SELECT дляэто.

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 18 марта 2011
set @player = '',@num=0;
select id,player,year,points,rank from
(select *, 
   @num := if(@player = player, @num + 1, 1) as rank,
   @player := player as p
from results order by player,points desc) as t
order by id
0 голосов
/ 18 марта 2011

В MySQL вы также можете использовать что-то вроде этого:

SET @rank=0;

SELECT @rank:=@rank+1 AS rank, person, year, points FROM yourtable ORDER BY id person;
...