您如何在活动记录的某个时间段内进行分组,但每个用户只计一次出现次数?

时间:2018-08-04 15:21:00

标签: 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).count

我将得到类似的结果

Sun, July 29 2018=>3

但是我希望该周用户只计算一次。是否可以使用groupdate gem或不使用datetrunc来做到这一点?

1 个答案:

答案 0 :(得分:4)

DailyCount.group_by_period('week', :occurred_at).count('distinct(user_id)')