Jer*_*ith 1 ruby activerecord ruby-on-rails
如果我有一个 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
Run Code Online (Sandbox Code Playgroud)
如果我使用 groupdate,我可以进行如下查询:
DailyCount.group_by_period('week', :occurred_at).count
Run Code Online (Sandbox Code Playgroud)
我会得到如下结果:
Sun, July 29 2018=>3
Run Code Online (Sandbox Code Playgroud)
但我想让用户在那个星期只计算一次。有没有办法使用 groupdate gem 或不使用 datetrunc 来做到这一点?
DailyCount.group_by_period('week', :occurred_at).count('distinct(user_id)')
Run Code Online (Sandbox Code Playgroud)