我有一個模型,其中包含字段「日期」和「頻率」(頻率是整數)。我試圖獲得每個日期的前5個頻率。 本質上我想按日期分組,然後獲得每組的前5名。在Ruby on Rails中獲取每組最多N個項目
我迄今只有該組中獲取最高的1:
Observation.channel("channelOne").order('date', 'frequency desc').group(:date).having('frequency = MAX(frequency)')
我想MAX(頻率)加上第二,第三,第四和第五大每個日期。
對不起,如果這很簡單,或者我的術語是關閉的;我剛開始使用Rails :)
您使用的數據庫是? – romainsalles
@romainsalles - > mysql – orrymr
我認爲這更多的是SQL問題。請參閱mysql中的'''ROW_NUMBER()''函數(http://stackoverflow.com/questions/1895110/row-number-in-mysql),並將其與「find_by_sql」ActiveRecord方法(http:// apidock.com/rails/ActiveRecord/Base/find_by_sql/class)。您應該能夠確定適當的請求以按日期檢索您最常見的5個觀察值。 – romainsalles