ruby-on-rails – GroupingError:ERROR:列必须出现在GROUP BY
发布时间:2020-12-16 19:43:56 所属栏目:百科 来源:网络整理
导读:我的控制器中的代码是按照最高的平均评价等级排列相册(从该解决方案 How to display highest rated albums through a has_many reviews relationship使用的代码): @albums = Album.joins(:reviews).select("*,avg(reviews.rating) as average_rating").grou
我的控制器中的代码是按照最高的平均评价等级排列相册(从该解决方案
How to display highest rated albums through a has_many reviews relationship使用的代码):
@albums = Album.joins(:reviews).select("*,avg(reviews.rating) as average_rating").group("albums.id").order("average_rating DESC") 这个代码在我的开发环境(sqlite3)中完美工作,但是当我将代码推送到heroku和postgresql时,我得到了这个错误: PG::GroupingError: ERROR: column "reviews.id" must appear in the GROUP BY clause or be used in an aggregate function 我意识到这是一个相当普遍的问题,我对SQL没有经验,所以我无法重构代码,因此它可以在我的开发和生产环境中工作. 解决方法
您不能选择reviews.id(通过通配符*隐式选择),而不将其添加到GROUP BY子句或应用像avg()的聚合函数.解决方案是执行以下操作之一:
>从您的选择中删除通配符* 第二和第三个选项在您的方案中并没有多大意义.根据您的评论,我添加了四个选项. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 实例代码讲解ajax实现的无刷新分页
- 自己常用的正则表达式
- 用VBA解决Windows空当接龙的617局
- c# – 使用ASP.NET MVC的Spark全球化
- ios – ld:4个用于架构armv7 FireBase Google的重复符号
- iphone – 重构函数错误 – “不是这个工作区中Xcode 3项目
- cocos2dx lua-binding<二>用cocos code ide
- 将ruby脚本编译成exe?
- c# – 在.NET 4.0中使用ConcurrentDictionary中的AddOrUpda
- No grammar constraints (DTD or XML schema)