original_string: public function compute_average_row($label, \core\dml\sql_join $usersjoins) {
          global $DB;
  
          list($fields, $from, $where, $params) = $this->base_sql($usersjoins);
          $record = $DB->get_record_sql("
                  SELECT AVG(quizaouter.sumgrades) AS grade, COUNT(quizaouter.sumgrades) AS numaveraged
                    FROM {quiz_attempts} quizaouter
                    JOIN (
                         SELECT DISTINCT quiza.id
                           FROM $from
                          WHERE $where
                         ) relevant_attempt_ids ON quizaouter.id = relevant_attempt_ids.id
                  ", $params);
          $record->grade = quiz_rescale_grade($record->grade, $this->quiz, false);
          if ($this->is_downloading()) {
              $namekey = 'lastname';
          } else {
              $namekey = 'fullname';
          }
          $averagerow = array(
              $namekey       => $label,
              'sumgrades'    => $this->format_average($record),
              'feedbacktext' => strip_tags(quiz_report_feedback_for_grade(
                                           $record->grade, $this->quiz->id, $this->context))
          );
  
          if ($this->options->slotmarks) {
              $dm = new question_engine_data_mapper();
              $qubaids = new qubaid_join("{quiz_attempts} quizaouter
                    JOIN (
                         SELECT DISTINCT quiza.id
                           FROM $from
                          WHERE $where
                         ) relevant_attempt_ids ON quizaouter.id = relevant_attempt_ids.id",
                      'quizaouter.uniqueid', '1 = 1', $params);
              $avggradebyq = $dm->load_average_marks($qubaids, array_keys($this->questions));
  
              $averagerow += $this->format_average_grade_for_questions($avggradebyq);
          }
  
          return $averagerow;
      }
code: public function compute_average_row($label, \core\dml\sql_join $usersjoins) {
          global $DB;
  
          list($fields, $from, $where, $params) = $this->base_sql($usersjoins);
          $record = $DB->get_record_sql("
                  SELECT AVG(quizaouter.sumgrades) AS grade, COUNT(quizaouter.sumgrades) AS numaveraged
                    FROM {quiz_attempts} quizaouter
                    JOIN (
                         SELECT DISTINCT quiza.id
                           FROM $from
                          WHERE $where
                         ) relevant_attempt_ids ON quizaouter.id = relevant_attempt_ids.id
                  ", $params);
          $record->grade = quiz_rescale_grade($record->grade, $this->quiz, false);
          if ($this->is_downloading()) {
              $namekey = 'lastname';
          } else {
              $namekey = 'fullname';
          }
          $averagerow = array(
              $namekey       => $label,
              'sumgrades'    => $this->format_average($record),
              'feedbacktext' => strip_tags(quiz_report_feedback_for_grade(
                                           $record->grade, $this->quiz->id, $this->context))
          );
  
          if ($this->options->slotmarks) {
              $dm = new question_engine_data_mapper();
              $qubaids = new qubaid_join("{quiz_attempts} quizaouter
                    JOIN (
                         SELECT DISTINCT quiza.id
                           FROM $from
                          WHERE $where
                         ) relevant_attempt_ids ON quizaouter.id = relevant_attempt_ids.id",
                      'quizaouter.uniqueid', '1 = 1', $params);
              $avggradebyq = $dm->load_average_marks($qubaids, array_keys($this->questions));
  
              $averagerow += $this->format_average_grade_for_questions($avggradebyq);
          }
  
          return $averagerow;
      }
code_tokens: public function compute_average_row ( $ label , \ core \ dml \ sql_join $ usersjoins ) { global $ DB ; list ( $ fields , $ from , $ where , $ params ) = $ this -> base_sql ( $ usersjoins ) ; $ record = $ DB -> get_record_sql ( "
                  SELECT AVG(quizaouter.sumgrades) AS grade, COUNT(quizaouter.sumgrades) AS numaveraged
                    FROM {quiz_attempts} quizaouter
                    JOIN (
                         SELECT DISTINCT quiza.id
                           FROM $from
                          WHERE $where
                         ) relevant_attempt_ids ON quizaouter.id = relevant_attempt_ids.id
                  " , $ params ) ; $ record -> grade = quiz_rescale_grade ( $ record -> grade , $ this -> quiz , false ) ; if ( $ this -> is_downloading ( ) ) { $ namekey = 'lastname' ; } else { $ namekey = 'fullname' ; } $ averagerow = array ( $ namekey => $ label , 'sumgrades' => $ this -> format_average ( $ record ) , 'feedbacktext' => strip_tags ( quiz_report_feedback_for_grade ( $ record -> grade , $ this -> quiz -> id , $ this -> context ) ) ) ; if ( $ this -> options -> slotmarks ) { $ dm = new question_engine_data_mapper ( ) ; $ qubaids = new qubaid_join ( "{quiz_attempts} quizaouter
                    JOIN (
                         SELECT DISTINCT quiza.id
                           FROM $from
                          WHERE $where
                         ) relevant_attempt_ids ON quizaouter.id = relevant_attempt_ids.id" , 'quizaouter.uniqueid' , '1 = 1' , $ params ) ; $ avggradebyq = $ dm -> load_average_marks ( $ qubaids , array_keys ( $ this -> questions ) ) ; $ averagerow += $ this -> format_average_grade_for_questions ( $ avggradebyq ) ; } return $ averagerow ; }
docstring: Calculate the average overall and question scores for a set of attempts at the quiz.
  
  @param string $label the title ot use for this row.
  @param \core\dml\sql_join $usersjoins to indicate a set of users.
  @return array of table cells that make up the average row.
docstring_tokens: Calculate the average overall and question scores for a set of attempts at the quiz .