PG :: GroupingError:错误:列“ events.id”必须出现在GROUP BY子句中或在聚合函数中使用 [英] PG::GroupingError: ERROR: column "events.id" must appear in the GROUP BY clause or be used in an aggregate function
本文介绍了PG :: GroupingError:错误:列“ events.id”必须出现在GROUP BY子句中或在聚合函数中使用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
一个事件有一个受欢迎程度
列和许多关键字。关键字具有类别和名称。我试图按事件的受欢迎程度对其进行排序,但随后仅从每个关键字名称中返回类别为 taxonomy的最受欢迎事件。
An event has a column popularity
and many keywords. A keyword has a category and a name. I am trying to order events by their popularity, but then only return the most popular event from each keyword name with the category "taxonomy".
这是我的查询:
Event
.order(:popularity)
.joins(:keywords)
.where(keywords: {category: "taxonomy"})
.group("keywords.name")
但是我遇到了以下错误:
But I am getting below error:
PG :: GroupingError:错误: events.id列必须出现在GROUP $中b $ b BY子句或在聚合函数中使用
PG::GroupingError: ERROR: column "events.id" must appear in the GROUP BY clause or be used in an aggregate function
我要去哪里错了?
推荐答案
Event
.order(:popularity)
.joins(:keywords)
.group('events.id') # <======
.where(keywords: { category: 'taxonomy' })
.group('keywords.name')
这篇关于PG :: GroupingError:错误:列“ events.id”必须出现在GROUP BY子句中或在聚合函数中使用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文