假设您有一个如下所示的简单表格:
+---------+---------------------+
| user_id | activity_date |
+---------+---------------------+
| 23672 | 2011-04-26 14:53:02 |
| 15021 | 2011-04-26 14:52:20 |
| 15021 | 2011-04-26 14:52:09 |
| 15021 | 2011-04-26 14:51:51 |
| 15021 | 2011-04-26 14:51:38 |
| 6241 | 2011-04-26 14:51:12 |
| 168 | 2011-04-26 14:51:12 |
...
如何选择过去 4 周内每周至少出现一次的 user_id 集?
最佳答案
select user_id,
sum(if(activity_date between now() - interval 1 week and now(),1,0)) as this_week,
sum(if(activity_date between now() - interval 2 week and now() - interval 1 week,1,0)) as last_week,
sum(if(activity_date between now() - interval 3 week and now() - interval 2 week,1,0)) as two_week_ago,
sum(if(activity_date between now() - interval 4 week and now() - interval 3 week,1,0)) as three_week_ago
from activities
where activity_date >= now() - interval 4 week
group by user_id
having this_week > 0 and last_week > 0 and two_week_ago > 0 and three_week_ago > 0
关于mysql - 选择用户每周至少出现一次,持续数周,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5792236/