我有以下列的表
id,name,score
有行
1, JohnDoe, 1200
2, JohnDoe, 1600
3, Mickey, 1100
基本上,每次玩游戏后,分数都会插入到数据库中。
最终,在显示最高分时,我想要获取某个玩家的最佳结果。在这种情况下,我想取JohnDoe的1600分,之后Mickey的分数为1100,但John Doe的分数不是1200,因为它低于他的最高分。
我怎么能这样做?
答案 0 :(得分:1)
您需要按名称分组,然后获取每个名称的最高分数。
SELECT name, MAX(score) AS "High Score"
FROM ScoreTable
GROUP BY name;
根据您的表ScoreTable
:
1, JohnDoe, 1200
2, JohnDoe, 1600
3, Mickey, 1100
上面的查询会返回:
Name | High Score
JohnDoe | 1600
Mickey | 1100
您可能还希望按高分排序,以便在Mickey之前显示John Doe(首先显示最高分):
SELECT name, MAX(score) AS "High Score"
FROM ScoreTable
GROUP BY name
ORDER BY "High Score" DESC;
您可以在SQLFiddle中查看。
答案 1 :(得分:0)
select name,max(score)
from table_name
group by name
答案 2 :(得分:0)
select name, max(score) as score
from tablename
group by name
<强> Read Group By function 强>
<强> SQl Fiddle 强>
答案 3 :(得分:0)
SELECT name, MAX(score)
FROM <your_table_name>
GROUP BY name;