Ruby on Rails:DB列から最大値を取得する


125

現在、自分のDBでまっすぐなSQLクエリを作成できます。

SELECT MAX(bar) FROM table_name

そして、そのテーブルの最大値で戻ります。Railsで同等の呼び出しと見なすものを作成すると、機能しません。呼んでいます:

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

これは単に次を返します:

[#<Bar >]

私が呼びかけている列では、一連の識別番号です。最大のものを探しています。Railsでこれにアクセスする他の方法はありますか?

回答:



6

もう一つの方法

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

5
なぜこれをしたいのですか?より詳細で、まったく同じクエリを実行するBar.maximum(:bar)ので、この回答を「推奨」する理由はまったくわかりません...
nathanvda

19
たとえば、最小と最大の両方が必要な場合:Bar.select("MAX(bar) max_bar, MIN(bar) min_bat").first.attributes
Shalev Shalit

質問をする人はマックスだけを望んでいました。
クリスピーターズ

1
彼はその質問に対して正しい答えを出した。おそらくそれは最良の答えではありませんが、彼はそれについて何も間違っていませんでした。
david0116
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.