如何统计近10天每日到店访问次数≥4次的用户数量

你原来的SQL错误原因是仅按日期分组,统计的是单日整体访问用户数的阈值过滤,没有拆解到单用户维度的访问次数统计。
正确实现需要先按「日期+用户ID」分组统计单用户单日的访问次数,过滤出访问次数≥4的用户,再按日期分组统计每日符合要求的用户总量,参考语句如下:
SELECT visit_date, COUNT(user_id) AS qualified_user_count FROM ( -- 内层统计每个用户每天的访问次数 SELECT DATE(arrival_timestamp) AS visit_date, user_id, COUNT(*) AS daily_visit_cnt FROM mytable WHERE arrival_timestamp >= CURRENT_DATE - 10 AND arrival_timestamp < CURRENT_DATE GROUP BY 1,2 HAVING daily_visit_cnt >= 4 ) t GROUP BY visit_date ORDER BY visit_date DESC LIMIT 10;
小提示:如果arrival_timestamp字段建有索引,WHERE条件中直接对时间戳做范围判断,不需要套DATE()函数,可以避免索引失效,大幅提升大表查询性能。
内容的提问来源于stack exchange,提问作者John Doe
相关产品推荐
相关产品推荐

