转换rails 3 mySQL查询以使用PostgreSQL

时间:2012-01-12 01:45:04

标签: mysql sql ruby-on-rails-3 postgresql

据我所知,mySQL和PostgreSQL对“group_by”选择器的理解不同,这要归功于此处发布的问题。但是,尽量尝试,我不能得到以下(看似)简单的查询来使用Heroku(PostgreSQL)数据库,虽然它在我的开发mySQL环境中工作正常:

@trans_by_trip = @user.transactions.order("date").sum(:amount_cents, :group => :trip_id)

我通过包含像“sum”这样的计算来读取,group_by会起作用,但事实并非如此。我必须承认,我无法将查询转换为原始SQL。

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

transactions.order("date") - 这是否试图按日期订购交易?如果是这样的话,这与将它们按照不包含日期的事物进行归类并不完全相容。那么试着简单地拿出那个条款吗?

您可以通过(在SQL术语中)min(date)要求结果排序,这将返回每次旅行的结果,按该行程的第一个日期排序。或max(date)等。不指定min或max会使结果不明确,这就是PostgreSQL拒绝它的原因。