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

查看:165
本文介绍了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屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆