我有一个表,其中每个用户的事件都有一行。我想检索在同一周 (两次之间最多间隔7天)有2个或更多事件的每个用户。
活动表:
id - user_id - date
1 - 1 - 2015/04/02
2 - 1 - 2015/04/05
3 - 1 - 2015/09/12
4 - 14 - 2016/01/21
5 - 14 - 2016/02/18
所以预期的结果应该是
user_id - count(date in same week)
1 - 2
user_id 14不应出现在结果中,因为它的事件不在同一周内。
有人知道如何完全在MySQL中做到这一点吗?
如果你只是需要有更多的则1次出现在7天USER_ID的列表中,那么你可以使用EXISTS()
与DATEDIFF()
SELECT distinct user_id
FROM EventTable e
WHERE EXISTS(SELECT 1 FROM EventTable e2
WHERE ABS(DATEDIFF(e.date,e2.date)) < 7
AND e.user_id = e2.user_id)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句