SQL数据库中有一个表,名为Players: 玩家(ID,姓名,年龄,性别,分数) 其中ID是主键。如何查找以下SQL查询?
现在我想写一条查询来查找下面的结果: 对于每个年龄段,查找这个年龄段所有玩家中得分最高的玩家的名字和年龄。
我写了下面的查询:
SELECT P.name, P.age
FROM Players P
WHERE P.score = (SELECT MAX(P2.score) FROM Players P2)
GROUP BY P.age, P.name
ORDER BY S.age
然而,上述查询的结果是玩家在所有年龄段的所有玩家,不是每个年龄段中的最高分数的列表。
然后,我改变了我的查询到以下几点:
SELECT P.name, P.age, MAX(P.score)
FROM Players P
GROUP BY P.age, P.name
ORDER BY P.age
不过,我写的第二个查询给人的球员,每个年龄列表,但每个年龄段,不仅有最高的玩家得分,还有其他球员在这个年龄组内得分较低。
我应该如何解决我的逻辑/查询代码?
谢谢!
我明白了,现在效果很好,谢谢! – user118464