我对如何在mysql中组合group和max感到困惑。这是我的问题:
我需要对数据进行分组,然后根据该组中的最大值,我需要获取该行。这是一个示例:
表格
ID Player Score
1 1 5
2 1 7
3 2 5
4 2 8
5 2 9
在基于玩家分组并获取与每个玩家的最高分相对应的所有字段后
结果
ID Player Score
2 1 7
5 2 9
请帮我写一下这个问题的查询。
答案 0 :(得分:1)
这是实现目标的一种方法,但可以有一些更简单的方法:
SELECT s.id,
s.player,
s.score
FROM scores s
JOIN (SELECT id,
player,
MAX(score) AS total
FROM scores
GROUP BY player
) r
ON r.total = s.score AND
r.player = s.player;
基本上,您要比较得分和玩家,以获得示例中列出的正确值。
但是,如果您有同一个玩家的多个条目具有相同的分数,那么您可能会遇到问题,如果您想要第一个或最后一个,它可能与订购有关但除此之外它不起作用。