SQL统计活跃用户怎么做_时间窗口分析SQL讲解【指导】
发布时间 - 2025-12-25 00:00:00 点击率:次统计活跃用户核心是定义“活跃”和“时间窗口”,再用SQL聚合计算;关键在理清业务逻辑,如DAU、WAU、MAU及留存率的差异化实现与口径对齐。
统计活跃用户核心是定义“活跃”和“时间窗口”,再用SQL聚合计算。关键不在复杂语法,而在理清业务逻辑:比如“近7天登录过的用户”和“连续3天登录的用户”,写法完全不同。
明确活跃标准和时间范围
先和产品、运营对齐口径,避免技术实现和业务需求脱节。常见定义包括:
- 单日活跃(DAU):某一天有行为(如登录、下单、点击)的去重用户数
- 周活跃(WAU):最近7天内至少活跃1天的用户数
- 月活跃(MAU):最近30天内至少活跃1天的用户数
- 留
存用户:在某日新增后,在后续第N天再次活跃的用户(需分层分析)
基础活跃用户统计(以DAU为例)
假设日志表 user_behavior 含字段:user_id、event_time(datetime)、event_type(如'login'、'click'):
SELECT COUNT(DISTINCT user_id) AS dau FROM user_behavior WHERE DATE(event_time) = '2025-06-15' AND event_type = 'login';
注意点:
- 用 COUNT(DISTINCT user_id) 防止同一用户多次行为重复计数
- 日期过滤建议用 DATE(event_time) 或 event_time >= '2025-06-15' AND event_time ,后者能走索引
- 务必加行为类型条件,避免把埋点错误或测试数据计入
滚动窗口活跃(如WAU/MAU)
统计“截至今天,过去7天活跃过的用户总数”,用日期范围动态筛选:
SELECT COUNT(DISTINCT user_id) AS wau FROM user_behavior WHERE event_time >= DATE_SUB(CURDATE(), INTERVAL 6 DAY) AND event_time
说明:
- DATE_SUB(CURDATE(), INTERVAL 6 DAY) 表示7天窗口的起始日(含),例如今天6月15日 → 起始为6月9日
- 结束条件用 确保包含今日0点到23:59:59
- 不同数据库函数略有差异:PostgreSQL用
CURRENT_DATE - INTERVAL '6 days',ClickHouse用today() - 6
留存分析(次日/7日留存)
需要两步:先找出某日新增用户,再查他们在后续日期是否回归。可用自连接或窗口函数:
WITH first_login AS ( SELECT user_id, MIN(DATE(event_time)) AS first_date FROM user_behavior WHERE event_type = 'login' GROUP BY user_id ), retention AS ( SELECT f.first_date, COUNT(DISTINCT b.user_id) AS retained_cnt FROM first_login f LEFT JOIN user_behavior b ON f.user_id = b.user_id AND DATE(b.event_time) = DATE_ADD(f.first_date, INTERVAL 1 DAY) AND b.event_type = 'login' GROUP BY f.first_date ) SELECT first_date, COALESCE(retained_cnt, 0) / COUNT(*) AS retention_rate FROM first_login f LEFT JOIN retention r ON f.first_date = r.first_date GROUP BY first_date;
要点:
- 用 MIN(DATE(event_time)) 定义“首次活跃日”,作为留存基准日
- LEFT JOIN + 条件匹配目标日(如次日),保留无回归记录的用户(计为0)
- 分母是当日新增用户数,分子是次日仍活跃的用户数,比值即留存率
# ai
# sql
# count
# select
# date
# postgresql
# 数据库
# clickhouse
# 次日
# 再用
# 首次
# 而在
# 为例
# 两步
# 下单
# 点到
# 差异化
# 能走
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel怎么使用Markdown渲染文档_Laravel将Markdown内容转HTML页面展示【实战】
Linux后台任务运行方法_nohup与&使用技巧【技巧】
如何在万网开始建站?分步指南解析
如何实现建站之星域名转发设置?
Laravel如何使用Socialite实现第三方登录?(微信/GitHub示例)
移动端脚本框架Hammer.js
如何自定义建站之星模板颜色并下载新样式?
如何用y主机助手快速搭建网站?
Python文件操作最佳实践_稳定性说明【指导】
邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?
详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)
Windows11怎样设置电源计划_Windows11电源计划调整攻略【指南】
Swift中switch语句区间和元组模式匹配
lovemo网页版地址 lovemo官网手机登录
合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?
音乐网站服务器如何优化API响应速度?
Laravel如何实现用户注册和登录?(Auth脚手架指南)
Laravel事件监听器怎么写_Laravel Event和Listener使用教程
Laravel Eloquent性能优化技巧_Laravel N+1查询问题解决
如何快速选择适合个人网站的云服务器配置?
Win11搜索不到蓝牙耳机怎么办 Win11蓝牙驱动更新修复【详解】
Laravel如何使用Eloquent进行子查询
在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?
如何快速生成可下载的建站源码工具?
实例解析angularjs的filter过滤器
如何用AWS免费套餐快速搭建高效网站?
EditPlus中的正则表达式实战(6)
laravel怎么使用数据库工厂(Factory)生成带有关联模型的数据_laravel Factory生成关联数据方法
Laravel如何配置和使用缓存?(Redis代码示例)
Laravel怎么实现搜索功能_Laravel使用Eloquent实现模糊查询与多条件搜索【实例】
潮流网站制作头像软件下载,适合母子的网名有哪些?
VIVO手机上del键无效OnKeyListener不响应的原因及解决方法
佛山网站制作系统,佛山企业变更地址网上办理步骤?
如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?
如何用PHP工具快速搭建高效网站?
Firefox Developer Edition开发者版本入口
Laravel Eloquent:优雅地将关联模型字段扁平化到主模型中
如何在腾讯云服务器快速搭建个人网站?
深圳防火门网站制作公司,深圳中天明防火门怎么编码?
jimdo怎样用html5做选项卡_jimdo选项卡html5实现与切换效果【指南】
如何快速辨别茅台真假?关键步骤解析
高防服务器如何保障网站安全无虞?
浅述节点的创建及常见功能的实现
制作旅游网站html,怎样注册旅游网站?
Win11摄像头无法使用怎么办_Win11相机隐私权限开启教程【详解】
如何快速生成橙子建站落地页链接?
高防服务器:AI智能防御DDoS攻击与数据安全保障
如何快速搭建自助建站会员专属系统?
如何用景安虚拟主机手机版绑定域名建站?
中山网站推广排名,中山信息港登录入口?


存用户:在某日新增后,在后续第N天再次活跃的用户(需分层分析)