我有工作错误:列“engagements.id”必须出现在GROUP BY子句或聚合函数中使用
@engagements = Engagement.includes(:participation).where(influencer_authorization_id: current_influencer.id).group_by { |p| p.status }
以下查询我试图使用数据库功能,而不是的Ruby/Rails功能组,下面是我的代码
engagements = Engagement.where(influencer_authorization_id: current_influencer.id).group("status")
但我收到以下错误
ERROR: column "engagements.id" must appear in the GROUP BY clause or be used in an aggregate function LINE 1: SELECT "engagements".* FROM "engagements" WHERE "engagements... ^
更新
我试着做以下,但仍不起作用
engagements = Engagement.select("engagements.*").where(influencer_authorization_id: current_influencer.id).group("engagement.status")
错误
ERROR: missing FROM-clause entry for table "engagement" LINE 1: ...ents"."influencer_authorization_id" = $1 GROUP BY engagement... ^
'Enumerable#group_by'与SQL的'GROUP BY'有很大不同。 'group_by'或多或少用于构建数组元素与块相同的数组。 “GROUP BY”用于对行进行分组,以便可以将聚合函数(例如'count','max',...)应用于每个组。 –