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数组。