2016-09-25 2 views
0

У меня есть модель с именем Answer с has_one Question ассоциация. Question имеет dimension_id, possible_answers У меня есть следующий запросСумма запроса на запрос Ruby ActiveRecord по специальному полю

Answer.joins(:question).select(:dimension_id,"(CAST(answers.answer AS FLOAT)/(length(possible_answers))) AS satisfaction").where(:created_at => date_from..date_to) 

Я хотел бы, чтобы сгруппировать результаты по dimension_id и суммы по удовольствию, для того, чтобы получить удовлетворение для каждого измерения, но если я .group(:dimension_id).sum(:satisfaction) я получаю ошибку PG::UndefinedColumn: ERROR: column "satisfaction" does not exist

Как я могу суммировать удовлетворение, чтобы получить желаемый результат? Спасибо

ответ

0

попробовать этот способ:

Answer.where(:created_at => date_from..date_to).joins(:question).select("answers.dimension_id, sum(CAST(answers.answer AS FLOAT)/(length(possible_answers))) AS satisfaction").group('answers.dimension_id') 

Я полагаю ваш dimension_id находится в answers, если не изменить answers.dimension_id к questions.dimension_id

+0

(dimension_id в вопросах) Если я что я получаю: PG :: GroupingError: ERROR: столбец «answer.answer» должен появиться в предложении GROUP BY или использоваться в агрегированной функции. LINE 1: SELECT questions.dimension_id, (CAST (answers.answer AS FLOAT – marimaf

Смежные вопросы