0

讓我們說在我的Rails應用程序中,我有50個不同的Topics,每個標識爲topic_id。我們還要說,以下查詢返回50個帖子並從每個帖子中選擇topic_id。選擇(:屬性)並按頻率對它們排序

Post.where(id: something).select(:topic_id) 

那麼如何做我的排名前5topic_ids最經常從該查詢來呢?

回答

0

雖然有效,但可能會有更有效的方法來做到這一點 - 隨時提出建議,我是新的!

[1,2,2,2,3,4,5,6,6,6,6].group_by{|x| x}.sort_by{|k,v| -v.size}[0..4][0..4].map{|arr| arr[0] } 

對這些值進行分組,按組的大小排序,然後從結果數組中提取topic_ids。結果是一個按頻率排序的topic_ids數組。

相關問題