我有工作錯誤:列「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',...)應用於每個組。 –