raylar için --upgrading bir toplama işlevi kullanılacak ve bu yeni hata alıyorum kapalı kurtulmak mümkün olmamıştır:GROUP BY deyimindeki görünmesi lazım yoksa 4 raylar için raylar 3.2 yükseltme am 4
answer_query = Answer.joins(:question).where(:created_at => start..finish, :question_id => questions_evaluation, :survey_id => survey_id)
sum = answer_query.select("sum(CAST(answer AS FLOAT)/(length(questions.possible_answers) - length(replace(questions.possible_answers,';','')) + 1)) as rating").first['rating'].to_f
Yani hata ikinci satırda oluyor:
PG::GroupingError: ERROR: column "answers.id" must appear in the GROUP BY clause or be used in an aggregate function LINE 1: ...IN (3778, 3779, 3780, 3783, 3786, 3788) ORDER BY "answers"....^: SELECT sum(CAST(answer AS FLOAT)/(length(questions.possible_answers) - length(replace(questions.possible_answers,';','')) + 1)) as rating FROM "answers" INNER JOIN "questions" ON "questions"."id" = "answers"."question_id" WHERE "answers"."survey_id" = $1 AND ("answers"."created_at" BETWEEN '2016-03-28 00:00:00.000000' AND '2016-04-03 23:59:59.999999') AND "answers"."question_id" IN (3778, 3779, 3780, 3783, 3786, 3788) ORDER BY "answers"."id" ASC LIMIT 1
Benim sorgu şudur.
eklendiğinde, önerilen here eklemeye çalıştım ama sonra soru tablosuyla ilgili farklı bir hata alıyorum.
Diğer mesajlar vahşi kartları kaldırarak önerdi, bu yüzden ("cevaplar, questions.possible_answers") .Select eklendi, ama sonra
denemek için başka ne emin değilim olsuncolumn "answers.*" must appear in the GROUP BY clause or be used in an aggregate function