keybored
keybored

Reputation: 5248

Ruby on Rails: getting the max value from a DB column

Currently I can make the straight-up SQL query on my DB:

SELECT MAX(bar) FROM table_name

And it returns with the max value in that table. When I make what I consider to be an equivalent call in Rails, however, it does not work. I am calling:

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

This simply returns with:

[#<Bar >]

In the column I'm calling on is a series of identifying numbers, I'm looking for the largest one. Is there some other way of accessing this in Rails?

Upvotes: 153

Views: 90495

Answers (2)

Dylan Markow
Dylan Markow

Reputation: 124419

Assuming your model name is Bar and it has a column named bar, this should work:

Bar.maximum(:bar)

See the excellent Rails Guides section on Calculations :: Maximum for more info.

Upvotes: 333

Manish Kasera
Manish Kasera

Reputation: 486

one more way

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

Upvotes: 11

Related Questions