From 043f6de8e72ad23cb5d0e3a7a1905c4d6c07e9f9 Mon Sep 17 00:00:00 2001 From: rebuilt Date: Wed, 24 Aug 2022 19:17:54 -0700 Subject: [PATCH] Prefer using over uniq so the filtering happens in sql --- app/services/race_score_loader.rb | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/app/services/race_score_loader.rb b/app/services/race_score_loader.rb index cfa7c777..da043164 100644 --- a/app/services/race_score_loader.rb +++ b/app/services/race_score_loader.rb @@ -88,11 +88,9 @@ class RaceScoreLoader def self.sufficient_responses(school:, academic_year:, race:) @sufficient_responses ||= Hash.new do |memo, (school, academic_year, race)| - # number_of_students_for_a_racial_group = SurveyItemResponse.where(school:, academic_year:, - # student: students).map(&:student).uniq.count number_of_students_for_a_racial_group = SurveyItemResponse.joins('JOIN student_races on survey_item_responses.student_id = student_races.student_id JOIN students on students.id = student_races.student_id').where( school:, academic_year: - ).where("student_races.race_id": race.id).pluck(:student_id).uniq.count + ).where("student_races.race_id": race.id).distinct.pluck(:student_id).count memo[[school, academic_year, race]] = number_of_students_for_a_racial_group >= 10 end @sufficient_responses[[school, academic_year, race]]