Ruby on rails 如何在活动记录中按时间段分组,但只计算每个用户发生的一次事件?

Ruby on rails 如何在活动记录中按时间段分组,但只计算每个用户发生的一次事件?,ruby-on-rails,ruby,activerecord,Ruby On Rails,Ruby,Activerecord,如果我有一个跟踪用户活动的DailyCount表,如下所示: occurred_at | Sat, 04 Aug 2018 user_id | 1 occurred_at | Sat, 04 Aug 2018 user_id | 2 occurred_at | Fri, 03 Aug 2018 user_id | 1 如果使用groupdate,我可以进行如下查询: DailyCount.group_by_period('week', :occurred_at).c

如果我有一个跟踪用户活动的DailyCount表,如下所示:

occurred_at | Sat, 04 Aug 2018
user_id     | 1

occurred_at | Sat, 04 Aug 2018
user_id     | 2

occurred_at | Fri, 03 Aug 2018
user_id     | 1
如果使用groupdate,我可以进行如下查询:

DailyCount.group_by_period('week', :occurred_at).count
我会得到这样的结果:

Sun, July 29 2018=>3

但是我想让用户在那一周只计算一次。有没有一种方法可以使用groupdate gem或不使用datetrunc来实现这一点?

DailCount.group\u by\u period'week':发生在.count'distinctuser\u id'上?我认为这是值得的答案,对吗?Thx:为什么这会被否决?DailyCount.group\u by\u period'week':发生在.count'distinctuser\u id'?我认为这值得作为一个答案,对吗?Thx:为什么这会被否决?你也可以以distinct结尾。count:user\u id你也可以以distinct结尾。count:user\u id
DailyCount.group_by_period('week', :occurred_at).count('distinct(user_id)')