首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails - Postgres -按关联对象计数分组

Rails - Postgres -按关联对象计数分组
EN

Stack Overflow用户
提问于 2020-02-12 13:25:09
回答 1查看 70关注 0票数 2

我有一个用户模型和一个救赎模型。用户可以多次赎回。我想知道有多少用户做了一次赎回,2,3,.

用户模型

代码语言:javascript
复制
has_many :redemptions, foreign_key: :redeemed_by

赎回模型

代码语言:javascript
复制
belongs_to :user, foreign_key: :redeemed_by

我可以运行以下查询,并对每个用户进行赎回。

代码语言:javascript
复制
 User.joins(:redemptions).group('redemptions.redeemed_by').count

结果:

代码语言:javascript
复制
{185=>2, 187=>1, 2042=>4, 2544=>1} 

这给了我每个用户赎回的数量。但我想要相反的。我想知道有多少用户做了1次赎回,多少次和继续.

我想通过Rails查询来实现这一点。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-12 14:31:47

你能做到的

代码语言:javascript
复制
User.joins(:redemptions)
    .group('redemptions.redeemed_by').count
    .group_by{|k,v| v}
    .map{|k,v| [k, v.size]}.to_h

返回

{1=>2,4=>2,5=>1}

其中1、4和5(键)是赎回次数,2、2、1(值)是多次赎回的用户数量。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60189416

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档