Mysql 选择每次测验的最佳分数和总分排行榜
我有一个类似这样的MySql表Mysql 选择每次测验的最佳分数和总分排行榜,mysql,select,group-by,sum,max,Mysql,Select,Group By,Sum,Max,我有一个类似这样的MySql表 quiz_id | user_id | points --------+---------+-------- 1 | 1 | 2 1 | 1 | 7 3 | 1 | 7 2 | 1 | 5 1 | 2 | 7 2 | 2 | 7 3
quiz_id | user_id | points
--------+---------+--------
1 | 1 | 2
1 | 1 | 7
3 | 1 | 7
2 | 1 | 5
1 | 2 | 7
2 | 2 | 7
3 | 2 | 2
3 | 2 | 6
用户可以重播游戏,试图获得最高分数
我需要查询以获取用户玩的每个测验的最佳“最大”分数,并按所有测验的总分排序,并使其看起来像这样:
user_id | SUM(points)
--------+--------
2 | 20
1 | 19
我试着用这个做第二部分
SELECT user_id, SUM(points)
FROM Quiz_list
GROUP BY user_id
ORDER BY SUM(points) DESC
如果有人能告诉我它应该是sql查询,我将不胜感激。我想您需要一个子查询来获取
max()
,然后执行sum()
:
SQL Fiddle:我认为您需要一个子查询来获取
max()
,然后执行sum()
:
SQL Fiddle:我认为您需要一个子查询来获取
max()
,然后执行sum()
:
SQL Fiddle:我认为您需要一个子查询来获取
max()
,然后执行sum()
:
SQL Fiddle:这正是我需要的:)Thanx很多!这正是我所需要的:)太多了!这正是我所需要的:)太多了!这正是我所需要的:)太多了!
select user_id, sum(points) as sumpoints
from (select user_id, quiz_id, max(points) as points
from quiz_list
group by user_id, quiz_id
) uq
group by user_id
order by sumpoints desc;