私は、Moodle と呼ばれる人気のあるオープン ソースの LMS を実行しています。この 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 人はまったく点数がありません。
このクエリでは、スコアと、そのスコアを持っている人の数以外は何も表示する必要はありません。私はこれに数日間取り組み、いくつかのアプローチを取りました。私はそれを正しく理解できないようです。どんな助けでも大歓迎です!
ありがとう、ハービー