这是oracle的,至于用row_number, rank 还是dense_rank就看你自己的要求了。 select * from (select player_name, score, time_stamp row_number() over (parition by player_name order by score desc) r from the_table) where r = 1;
【在 d**e 的大作中提到】 : 这是oracle的,至于用row_number, rank 还是dense_rank就看你自己的要求了。 : select * : from (select player_name, score, time_stamp : row_number() over (parition by player_name : order by score desc) r : from the_table) : where r = 1;
e*3
4 楼
通用型Query: select * from table join (select player_name, max(score) as maxscore from table group by player_name) as t on (table.player_name = t.player_name and table.score = t.maxscore)
n*5
5 楼
一个group by 就搞定了? 通用query select player_name, max(score) as maxscore, timestamp from table group by player_name
d*e
6 楼
这个不能取 timestamp, 它不在group by 里面
【在 n********5 的大作中提到】 : 一个group by 就搞定了? : 通用query : select player_name, max(score) as maxscore, timestamp from table group by : player_name
b*n
7 楼
通用query, 不知道对不对? select table.player_name, table.score, timestamp from table, (select player_name, MAX(score) AS maxscore) AS tmp where table.player_name = tmp.playername AND table.score = tmp.maxscore;