如何使用 Rails 在 PostgreSQL 中处理 GROUP BY?
我有一个 Rails 3 应用程序,它保持高分。我将其托管在 Heroku 上,它使用 postgresql 作为数据库。
我需要从分数表中提取最高分。该表包含 score
和 user_id
列。它在 mysql 中使用以下代码:
Score.order('score DESC').group('user_id').limit(25)
这对每个用户的最高分数进行排名。
当我将应用程序放在 Heroku 上时,我收到以下 psql 错误 PGError: ERROR: column "scores.id" Must come in the GROUP BY Clause or be use in anaggregate function
我已经阅读过但还没有找到明确的答案。重新创建上述查询以与 PostgreSQL 一起使用的最佳方法是什么?
谢谢!
蒂姆
I have a Rails 3 app which keeps high scores. I'm hosting it on Heroku which uses postgresql as the db.
I need to extract the top scores from the scores table. The table has columns score
and user_id
. It was working in mysql with the following:
Score.order('score DESC').group('user_id').limit(25)
This ranks each user's top score.
When I put the app on Heroku, I get the following psql error PGError: ERROR: column "scores.id" must appear in the GROUP BY clause or be used in an aggregate function
I've read around but haven't found a clear answer. What is the most optimal way to recreate the above query to work with PostgreSQL?
Thanks!
Tim
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这意味着您的选择查询正在选择“id”列,但不将其包含在 group by 子句中。我不熟悉 Rails,但它可以选择 * 或所有列吗?
That means your select query is selecting the "id" column but not including it in the group by clause. I'm not familiar with rails but could it be selecting * or all columns?
你能做吗
Could you do