在我的本地这个查询工作完美的sqlite3
def Event.most_like
select("events.*, count(like_events.event_id) as likes_count")
.joins(:like_events).group(:event_id).order("likes_count
DESC").limit(4)
end
但是在部署heroku时遇到了一些错误
PG::GroupingError: ERROR: column "events.id" must appear in the GROUP BY clause or be used in an aggregate function
有人可以帮我解决这个问题吗?
答案 0 :(得分:1)
作为消息,Map
子句中的所有字段都必须出现在Select
或聚合函数中。在这种情况下,您选择GROUP BY
的所有字段,以便包含Event
的字段需要满足上述要求。
要解决此问题,我建议更改功能以仅选择事件的ID和likes_count,如下所示:
events.id
如果您仍需要获取事件记录,则可以根据其ID获取这些记录。