我正在运行一个名为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
答案 0 :(得分:0)
将查询保存为视图。然后在视图上运行SQL查询(比如'marksheet'),如下所示:
SELECT Grade, COUNT(First) FROM marksheet GROUP BY Grade