2016-09-25 38 views
0

我有一个名为Answer的模型与has_one Question关联。 Questiondimension_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_idquestions.dimension_id

+0

(dimension_id是个问题)。如果我这样做,我得到:PG :: GroupingError:错误:列“answers.answer”必须出现在GROUP BY子句中或用于聚合函数中 LINE 1:SELECT questions.dimension_id,(CAST(answers.answer AS FLOAT – marimaf