据我所知,mySQL和PostgreSQL对“group_by”选择器的理解不同,这要归功于此处发布的问题。但是,尽量尝试,我不能得到以下(看似)简单的查询来使用Heroku(PostgreSQL)数据库,虽然它在我的开发mySQL环境中工作正常:
@trans_by_trip = @user.transactions.order("date").sum(:amount_cents, :group => :trip_id)
我通过包含像“sum”这样的计算来读取,group_by会起作用,但事实并非如此。我必须承认,我无法将查询转换为原始SQL。
非常感谢您的帮助。
答案 0 :(得分:1)
transactions.order("date")
- 这是否试图按日期订购交易?如果是这样的话,这与将它们按照不包含日期的事物进行归类并不完全相容。那么试着简单地拿出那个条款吗?
您可以通过(在SQL术语中)min(date)
要求结果排序,这将返回每次旅行的结果,按该行程的第一个日期排序。或max(date)
等。不指定min或max会使结果不明确,这就是PostgreSQL拒绝它的原因。