2016-09-25 41 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