diff --git a/grade/report/grader/lib.php b/grade/report/grader/lib.php
index b7be4a0..24c8265 100644
--- a/grade/report/grader/lib.php
+++ b/grade/report/grader/lib.php
@@ -1115,12 +1115,14 @@ class grade_report_grader extends grade_report {
             $SQL = "SELECT g.itemid, SUM(g.finalgrade) AS sum
                       FROM {$CFG->prefix}grade_items gi
                            JOIN {$CFG->prefix}grade_grades g      ON g.itemid = gi.id
-                           JOIN {$CFG->prefix}user u              ON u.id = g.userid
-                           JOIN {$CFG->prefix}role_assignments ra ON ra.userid = u.id
+                      AND EXISTS
+                           (SELECT    userid
+                              FROM    {$CFG->prefix}role_assignments ra
+                             WHERE    ra.roleid in ($this->gradebookroles)
+                               AND    ra.contextid ".get_related_contexts_string($this->context)."
+                               AND    ra.userid = g.userid)
                            $groupsql
                      WHERE gi.courseid = $this->courseid
-                           AND ra.roleid in ($this->gradebookroles)
-                           AND ra.contextid ".get_related_contexts_string($this->context)."
                            AND g.finalgrade IS NOT NULL
                            $groupwheresql
                   GROUP BY g.itemid";
@@ -1137,7 +1139,7 @@ class grade_report_grader extends grade_report {
 
             // MDL-10875 Empty grades must be evaluated as grademin, NOT always 0
             // This query returns a count of ungraded grades (NULL finalgrade OR no matching record in grade_grades table)
-            $SQL = "SELECT gi.id, COUNT(u.id) AS count
+            $SQL = "SELECT gi.id, COUNT(DISTINCT u.id) AS count
                       FROM {$CFG->prefix}grade_items gi
                            CROSS JOIN {$CFG->prefix}user u
                            JOIN {$CFG->prefix}role_assignments ra        ON ra.userid = u.id
