请问下取一周来过三次的用户应该怎么取 应该怎么写
1
yunshui OP 表名:user_id, time, event
每个 id 一天同个 event 会有多个 time,我现在想要一周内来了两天以上的 id |
2
Joshua999 2019-09-04 21:46:12 +08:00 via Android
count
|
3
luopengfei14 2019-09-04 22:00:52 +08:00 via iPhone
将时间转换为天的字符串,然后对 ID,天进行分组… …
大概思路是这样 |
4
romisanic 2019-09-04 22:08:14 +08:00
请先给个表结构并定义什么是"来过一次"
|
5
dallaslu 2019-09-04 22:13:33 +08:00
记录每次登录事件,然后统计指定时间内的登录次数。或者增加一个 meet_times_this_week,每次登录 +1,每周清零。
|
6
doublie 2019-09-04 23:48:14 +08:00 via iPhone
还不知道表结构是怎么样的!不过我觉得 group by id 应该适合你,你的一周这个范围就不知道了,不知道是最近的一周还是固定的一周
|
7
chestre 2019-09-05 00:13:05 +08:00
假设:
1,时间格式是 "yyyy-MM-dd", 可使用内置函数例如 DAY() 获得日期( day ) 2,登录 event is ‘ login ’ SELECT user_id FROM UserEvent WHERE event='login' GROUP BY user_id, Day(time) HAVING count(*)>=3 |
9
ColoThor 2019-09-05 09:09:20 +08:00
时间不要用内置函数,会使索引失效。比如字段是 login_time,那就 login_time >= 'yyyy-MM-dd 00:00:00' and login_time <= 'yyyy-MM-dd 23:59:59'
|