Ruby on Rails: Bir DB sütunundan maksimum değeri alma


125

Şu anda veritabanımda düz SQL sorgusu yapabiliyorum:

SELECT MAX(bar) FROM table_name

Ve bu tablodaki maksimum değerle geri döner. Ancak Rails'te eşdeğer olduğunu düşündüğüm bir çağrı yaptığımda işe yaramıyor. Arıyorum:

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

Bu sadece şununla döner:

[#<Bar >]

Aradığım sütunda bir dizi tanımlayıcı numara var, en büyüğünü arıyorum. Buna Rails'de erişmenin başka bir yolu var mı?

Yanıtlar:



6

bir yol daha

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

5
Bunu neden yapmak istersiniz? Daha ayrıntılı ve tam olarak aynı sorguyu yürüttüğü için Bar.maximum(:bar)bu yanıtı "tavsiye etmek" için hiçbir neden göremiyorum ...
nathanvda

19
örneğin, hem min hem de maks istiyorsanız:Bar.select("MAX(bar) max_bar, MIN(bar) min_bat").first.attributes
Shalev Shalit

Soruyu soran kişi yalnızca maks.
Chris Peters

1
Soruya doğru bir cevap verdi. Muhtemelen en iyi cevap bu değil, ama yanlış bir şey yapmadı.
david0116
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.