0

我正在运行一个名为 Moodle 的流行开源 LMS,它背后有一个 MySQL 数据库。我已经编写了一个有效的查询,它返回我们所有员工的列表以及他们在称为 IT 政策课程的 9 门必修课程上的分数总和。这个想法是,如果他们有 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 人根本没有分数,等等。

这个查询不需要显示任何东西,只需要一个分数和有多少人有这个分数。我已经为此工作了几天并采取了多种方法。我只是似乎无法做到这一点。任何帮助将非常感激!

谢谢你,哈维

4

1 回答 1

0

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

SELECT Grade, COUNT(First) FROM marksheet GROUP BY Grade 
于 2013-10-25T12:50:30.623 回答