如何计算MySQL中SUM的结果

时间:2013-10-25 12:37:22

标签: mysql count sum

我正在运行一个名为Moodle的流行的开源LMS,它背后有一个MySQL数据库。我已经编写了一个正常运行的查询,它返回了我们所有员工的列表以及他们在9个必修课程上的分数总和,称为IT政策课程。这个想法是,如果他们有900,我知道他们已经通过了全部9,700,这意味着他们已经完成了7,等等。下面是查询。

SELECT u.firstname AS 'First' , u.lastname AS 'Last', cc.name AS 'Category', 
ROUND(SUM(gg.finalgrade),0) AS Grade
FROM prefix_course AS c
JOIN prefix_context AS ctx ON c.id = ctx.instanceid
JOIN prefix_role_assignments AS ra ON ra.contextid = ctx.id
JOIN prefix_user AS u ON u.id = ra.userid
JOIN prefix_grade_grades AS gg ON 
JOIN prefix_grade_items AS gi ON gi.id = gg.itemid
JOIN prefix_course_categories AS cc ON cc.id = c.category 
WHERE  gi.courseid = c.id AND cc.name = 'IT Policies' AND gi.itemtype = 'course'
GROUP BY u.lastname,u.firstname
ORDER BY grade

我的问题是这个。我想要一份总结报告,计算每个人得分的人数。例如,102人有900人.7人有800人,14人有700人,0人有600人,......,72人根本没有分数等等。

此查询不需要显示任何内容,只需显示分数和有多少人拥有该分数的计数。我已经研究了几天并采取了一些方法。我似乎无法做到正确。任何帮助将不胜感激!

谢谢你, Harvy

1 个答案:

答案 0 :(得分:0)

将查询保存为视图。然后在视图上运行SQL查询(比如'marksheet'),如下所示:

SELECT Grade, COUNT(First) FROM marksheet GROUP BY Grade