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

时间:2016-10-18 19:10:57

标签: ruby-on-rails activerecord

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

这是我的疑问:

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

但我收到以下错误:

  

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

我哪里错了?

1 个答案:

答案 0 :(得分:7)

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