0
讓我們說在我的Rails應用程序中,我有50個不同的Topics
,每個標識爲topic_id
。我們還要說,以下查詢返回50個帖子並從每個帖子中選擇topic_id
。。選擇(:屬性)並按頻率對它們排序
Post.where(id: something).select(:topic_id)
那麼如何做我的排名前5topic_ids
最經常從該查詢來呢?
讓我們說在我的Rails應用程序中,我有50個不同的Topics
,每個標識爲topic_id
。我們還要說,以下查詢返回50個帖子並從每個帖子中選擇topic_id
。。選擇(:屬性)並按頻率對它們排序
Post.where(id: something).select(:topic_id)
那麼如何做我的排名前5topic_ids
最經常從該查詢來呢?
雖然有效,但可能會有更有效的方法來做到這一點 - 隨時提出建議,我是新的!
[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數組。