gpt4 book ai didi

ruby-on-rails - 从关联中获取按字段分组并按组中计数排序的所有记录

转载 作者:数据小太阳 更新时间:2023-10-29 07:47:44 26 4
gpt4 key购买 nike

我有 3 个模型:PostCommentUser

Post 有很多Comments

评论 属于用户

User 有字段 country_code

我想获取所有按国家/地区代码分组并按每个国家/地区的评论数量排序的帖子评论。

这个查询:

post.comments.joins(:user).group("users.country_code").order('count_all desc').count

返回这样的结果:

{"DE"=>67,
"US"=>8,
"RS"=>8,
"IN"=>8,
"ES"=>7,
"BR"=>6,
...
"UA"=>0

我需要的是类似的结果,其中国家/地区代码是键,而值是注释数组。我不知道如何实现这一目标。

最佳答案

可以使用Ruby枚举模块自带的group_by

post.comments.group_by{ |c| c.user.country_code }

如果您还希望它按每个组中的评论数量排序,这也是可能的:

post.comments.group_by{ |c| c.user.country_code }.sort_by{ |k, v| v.length }

我想在相反的方向上进行排序,您可以在排序 block 中将长度乘以 -1

post.comments.group_by{ |c| c.user.country_code }.sort_by{ |k, v| v.length * -1 }

关于ruby-on-rails - 从关联中获取按字段分组并按组中计数排序的所有记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32254473/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com