2011-02-11 247 views
93

获得最大值目前,我可以让我的DB的直线上升。SQL查询:Ruby on Rails的:从数据库列

SELECT MAX(bar) FROM table_name 

,并将其与该表中的最大值返回。但是,当我在Rails中做出我认为是等效的调用时,它不起作用。我打电话:

[#<Bar >] 

在我打电话的列是一系列的识别号,我正在寻找最大的一个:

Bar.all(:select => "Max(bar)") 

这只是与返回。有没有其他方式在Rails中访问它?

回答

203

假设您的型号名称为Bar,它有一个名为bar列,这应该工作:

Bar.maximum("bar") 

更多信息请参阅优秀Rails Guides section on Calculations

+0

啊哈!对,你就是这样做的。我会尽快检查你的答案,因为SO会让我这样做。谢谢! – keybored 2011-02-11 21:09:34

2

另一种方式

Bar.select("Max(bar) as max_bar").first.max_bar 
+4

你为什么要这样做?更详细的,并执行与`Bar.maximum(:bar)`完全相同的查询,所以我没有理由“推荐”这个答案... – nathanvda 2014-10-27 15:42:45