从数据库中获取唯一结果

时间:2013-10-30 04:09:07

标签: mysql unique

我有以下列的表

id,name,score

有行

1, JohnDoe, 1200
2, JohnDoe, 1600
3, Mickey, 1100

基本上,每次玩游戏后,分数都会插入到数据库中。

最终,在显示最高分时,我想要获取某个玩家的最佳结果。在这种情况下,我想取JohnDoe的1600分,之后Mickey的分数为1100,但John Doe的分数不是1200,因为它低于他的最高分。

我怎么能这样做?

4 个答案:

答案 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;