我有一个像
这样的结构的MySQL表lesson_id | task_id | user_id | mark
每节课可以有很多用户和任务
我想得到2个结果:
预期结果1。
user_1 500
user_3 423
user_2 100
user_4 92
预期结果2。
user_id | mark | lesson_id
user_3 | 423 | 2
user_2 | 100 | 2
user_4 | 92 | 2
答案 0 :(得分:2)
我同意scaisEdge关于第一个问题 对于第二个问题,您需要按课程向同一查询添加过滤:
select user_id, sum(mark) sum_of_mark
from your_table
group by user_id
where lesson_id = @lesson
order by sum_of_mark DESC;
答案 1 :(得分:1)
使用分组依据和DESC命令
for User
select user_id, sum(mark) sum_of_mark
from your_table
group by user_id
order by sum_of_mark DESC;
For Task 选择user_id,task_id,sum(mark)sum_of_mark 来自your_table group by user_id,task_id 按sum_of_mark DESC排序;