2011-11-01 72 views
0

不理解如何使用ActiveRecord的语法来表示特定类型的查询。如何在Rails中执行这个更复杂的查询?

Company 
has_many shareprices 
  • 在运行时更新shareprices的过程,一个新的条目在shareprice表中创建。所以你显然最终会为每家公司分配大量的股价行。在这种情况下,您最终可能会得到1家公司在上个时间段内有5个非常高的股价条目。

所以我们可以说我想返回,目前有在最后时间段的最高shareprice的公司 - 我需要它基本上是从shareprices表中返回最大的价格为那家公司,然后寻找下一个。

  • 我无法弄清楚如何用ActiveRecord语法来做到这一点。我已经尝试了很多其他的方法,其灵感来自其他的stackoverflow答案,但总是无法得到它返回独特的公司,所以我错过了选择独特,加入,组或其他事物周围的某个地方。

环境:postgresSQL后端部署到heroku。

非常感谢。

回答

2

不知道你的结构很难提供具体的答案。但是像这样的东西应该工作。

Company.select('max(share_prices.price) as price,companies.id').joins(:share_prices).group(:id).order('price') 
+0

谢谢,这使我的方向完全正确,我找到了答案。我很开心,所以非常感谢。 – Dave