Retrieve user statistics in an execution environment for all exercises at once

This commit is contained in:
Maximilian Grundke
2016-01-07 15:42:53 +01:00
parent f195607ba1
commit a508d47e3e
3 changed files with 42 additions and 8 deletions

View File

@ -34,7 +34,7 @@ class Exercise < ActiveRecord::Base
def average_score
if submissions.exists?(cause: 'submit')
maximum_scores_query = submissions.select('MAX(score) AS maximum_score').where(cause: 'submit').group(:user_id).to_sql.sub('$1', id.to_s)
maximum_scores_query = submissions.select('MAX(score) AS maximum_score').group(:user_id).to_sql.sub('$1', id.to_s)
self.class.connection.execute("SELECT AVG(maximum_score) AS average_score FROM (#{maximum_scores_query}) AS maximum_scores").first['average_score'].to_f
else 0 end
end