一张表中的标记总和

时间:2016-04-07 09:39:47

标签: mysql sql

我有一个像

这样的结构的MySQL表
lesson_id | task_id | user_id | mark

每节课可以有很多用户和任务

我想得到2个结果:

  1. 以大值(DESC顺序)开头的每个用户的所有标记的总和
  2. 以大值(DESC顺序)开头的每个用户的一个指定课程的所有标记的总和
  3. 预期结果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 
    

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排序;