如何使用Rails 3.0连接包含聚合函数的子查询的表

时间:2011-05-26 16:02:46

标签: ruby-on-rails-3 activerecord join aggregate-functions

我有一个表StockPrice,其中包含时间戳(时间),股票代码(符号)和其他一些属性a,b,c等

在SQL中我会写以下内容:

Select * 
FROM stock_prices, (SELECT symbol, max(time) as max_time
                    FROM stock_prices
                    GROUP BY symbol) latest_prices
WHERE stock_prices.symbol = latest_prices.symbol
AND stock_prices.time = latest_prices.max_time

我想使用rails 3.0 ActiveRecord查询东西select,from,group等来表达这个查询。我该怎么做?

1 个答案:

答案 0 :(得分:0)

虽然可以使用Rails方法和SQL片段的混合来实现这一点,但这可能会变得混乱。直接执行这样的复杂查询通常要简单得多。

在模型的上下文中查看find_by_sql方法: http://api.rubyonrails.org/classes/ActiveRecord/Base.html#method-c-find_by_sql