2011-11-01 60 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