2011-02-11 12 views
93

gelen maksimum değer elde:Yakut: Şu anda benim DB üzerinde düz-up SQL sorgusu yapabilir DB sütununun

SELECT MAX(bar) FROM table_name 

Ve o tablodaki maksimum değeri ile döner. Bununla birlikte, Rails'de eşdeğer bir çağrı olduğunu düşündüğüm şeyi yaptığımda, işe yaramıyor. Ben arıyorum: Ben arıyorum sütununda

[#<Bar >] 

, ben büyük birini arıyorum tanımlayan numaralar dizisidir:

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

Bu sadece geri dönmektedir. Rails'de buna erişmenin başka bir yolu var mı?

cevap

203

model isminizi varsayarsak Bar olup, bar adlı bir sütun vardır, bu çalışması gerekir:

Bar.maximum("bar") 

fazla bilgi için mükemmel Rails Guides section on Calculations bakınız.

+0

Ah ha! Doğru sen yaptın. Cevabınızı, SO'nun bana izin vereceği gibi kontrol edeceğim. Teşekkürler! – keybored

2

bir yol daha

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

Bunu neden yapmak istersiniz? Daha ayrıntılı, ve 'Bar.maximum (: bar)' ile aynı sorguyu yürütür, bu yüzden de bu cevabı "önermek" için hiçbir neden görmüyorum ... – nathanvda

+11

örneğin, hem min hem de maks: 'Bar. select ("MAX (bar) max_bar, MIN (bar) min_bat") first.attributes' –

+0

Soruyu soran kişi sadece maks. –