gpt4 book ai didi

MySQL - 如何选择具有字段最大值的行

转载 作者:行者123 更新时间:2023-11-29 04:36:25 26 4
gpt4 key购买 nike

我有一个用户表,其中包含他们在游戏的每个级别的分数:

id | user_id | level | score
1 | David | 1 | 20
2 | John | 1 | 40
3 | John | 2 | 30
4 | Mark | 1 | 60
5 | David | 2 | 10
6 | David | 3 | 80
7 | Mark | 2 | 20
8 | John | 3 | 70
9 | David | 4 | 50
10 | John | 4 | 30

每个级别需要得到什么SQL查询,谁的分数最高?

结果应该是:

id | user_id | level | score
4 | Mark | 1 | 60
3 | John | 2 | 30
6 | David | 3 | 80
9 | David | 4 | 50

谢谢

最佳答案

如果你想打领带,那么你可以这样做:

select s.*
from scores s
where s.score = (select max(s2.score) from scores s2 where s2.level = s.level);

您可以通过聚合以下内容在每个级别获得一行:

select s.level, s.score, group_concat(s.user_id)
from scores s
where s.score = (select max(s2.score) from scores s2 where s2.level = s.level)
group by s.level, s.score;

这会将用户(如果有多个用户)合并到一个字段中。

关于MySQL - 如何选择具有字段最大值的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40414137/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com