0

Скажем, в моем приложении rails у меня есть 50 разных Topics, каждый из которых идентифицирован topic_id. Давайте также скажем, что этот следующий запрос возвращает 50 сообщений и выбирает topic_id из каждого..select (: attribute) и ранжировать их по частоте

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 из результирующих массивов. Результат - это массив тематических_соединений, отсортированных по частоте.

Смежные вопросы