PG :: GroupingError:错误:列“events.id”必须出现在GROUP BY子句中或用于聚合函数

事件具有列popularity和许多关键字。 关键字具有类别和名称。 我试图通过它们的受欢迎程度来命令事件,但是只返回每个关键字名称中最受欢迎的事件,其类别为“分类法”。

这是我的查询:

 Event .order(:popularity) .joins(:keywords) .where(keywords: {category: "taxonomy"}) .group("keywords.name") 

但我得到以下错误:

PG :: GroupingError:错误:列“events.id”必须出现在GROUP BY子句中或用于聚合函数

我哪里错了?

 Event .order(:popularity) .joins(:keywords) .group('events.id') # <====== .where(keywords: { category: 'taxonomy' }) .group('keywords.name')