SQL统计留存率怎么做_用户行为分析SQL思路【指导】


SQL统计留存率的核心是对比初始行为用户与后续某天仍活跃的同一用户,需准确定义活跃行为和首日、统一时间粒度、去重构造基准用户群,并通过JOIN或窗口函数计算各日留存人数及比率。

sql统计留存率怎么做_用户行为分析sql思路【指导】

SQL统计留存率的核心是对比“初始行为用户”和“后续某天仍活跃的同一用户”,关键在准确圈定基准人群、识别回访行为、按时间维度对齐计算。

明确留存定义与时间粒度

留存率 = (第N日仍活跃的首日用户数 ÷ 首日活跃用户总数)× 100%。常见有次日留存、7日留存、30日留存。必须先约定“活跃行为”是什么(如登录、下单、访问首页),以及“首日”如何定义(如首次注册日、首次下单日、某活动参与日)。

  • 若以“注册日”为起点,需确保表中有 user_idregister_date
  • 若以“首次登录日”为起点,需先用窗口函数算出每个用户的 first_login_date
  • 时间粒度统一用日期(DATE(event_time)),避免时分秒干扰分组

构造首日用户集合

用子查询或CTE提取所有在基准日(如2025-12-01)发生目标行为的用户,作为分母基础。例如:

WITH cohort AS (
  SELECT DISTINCT user_id
  FROM event_log
  WHERE DATE(event_time) = '2025-12-01'
    AND event_type = 'login'
)

这一步必须去重,避免同一用户多次行为重复计入分母。

关联后续行为并计算留存

将首日用户集合与后续日期的行为表左连接(或内连接,视是否只统计有回访者),按天聚合回访人数。例如统计次日留存:

吐司AI 吐司AI

超多功能的免费在线生图网站!拥有全网更齐全的模型库,0门槛使用!

吐司AI 325 查看详情 吐司AI

SELECT
  COUNT(DISTINCT c.user_id) AS cohort_size,
  COUNT(DISTINCT e.user_id) AS retained_day1,
  ROUND(COUNT(DISTINCT e.user_id) * 100.0 / COUNT(DISTINCT c.user_id), 2) AS retention_day1
FROM cohort c
LEFT JOIN event_log e
  ON c.user_id = e.user_id
    AND DATE(e.event_time) = '2025-12-02'
    AND e.event_type = 'login';

  • LEFT JOIN 保证分母完整;若用 INNER JOIN,则只保留有回访的用户,无法直接算比率
  • 多日留存可扩展:用 DATE_DIFF(ClickHouse/StarRocks)或 DATEDIFF(MySQL)配合 GROUP BY 实现批量计算
  • 高效率场景建议在数仓中预计算用户每日活跃宽表,再做JOIN,避免实时扫描大日志表

用窗口函数支持滚动留存(进阶)

如果要一次性输出每个注册日对应的7日留存曲线,可用窗口函数标记每个用户的首次行为日,再自连接判断间隔:

WITH first_act AS (
  SELECT user_id, MIN(DATE(event_time)) AS first_date
  FROM event_log WHERE event_type = 'login'
  GROUP BY user_id
),
retention_days AS (
  SELECT
    fa.first_date,
    DATEDIFF('day', fa.first_date, DATE(e.event_time)) AS diff_day
  FROM first_act fa
  INNER JOIN event_log e ON fa.user_id = e.user_id
  WHERE DATE(e.event_time) >= fa.first_date
)
SELECT
  first_date,
  COUNT(DISTINCT CASE WHEN diff_day = 0 THEN user_id END) AS day0,
  COUNT(DISTINCT CASE WHEN diff_day = 1 THEN user_id END) AS day1,
  COUNT(DISTINCT CASE WHEN diff_day = 7 THEN user_id END) AS day7
FROM retention_days
GROUP BY first_date;

这种方法适合做趋势分析,但要注意数据量大时需加日期分区过滤,否则性能易下降。

以上就是SQL统计留存率怎么做_用户行为分析SQL思路【指导】的详细内容,更多请关注其它相关文章!


# ai  # datediff  # mysql  # 检测方法  # 南乐整合营销推广  # 进阶  # 重构  # 若以  # 某天  # 次日  # 怎么做  # 分区表  # 首次  # 首日  # 2025  # 金华seo价格  # 谷歌seo绩效  # 百度竞价怎么推广自己的网站  # 衡阳网站建设口碑推荐  # seo图表制作  # 黑龙seo优化免费试用  # 口碑好的网站建设检修  # 陕西定制网站建设哪家强  # seo优化六神云 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 优化推广96088 】 【 技术知识133117 】 【 IDC资讯59369 】 【 网络运营7196 】 【 IT资讯61894


相关推荐: 苹果手机怎么合并照片_苹果手机合并多张照片的操作方法  向往的生活小游戏启动处_向往的生活小游戏立即启动  荣耀Magic7拍照夜景噪点处理_荣耀Magic7相机优化  TikTok网页版入口快速访问 TikTok官网账号登录方法  使用jQuery精确检测除指定元素外任意位置的点击事件  不吃碳水化合物是健康减肥的好办法吗  风神瞳获取全攻略  在VS Code中利用AI辅助进行代码迁移  高德地图导航路线偏差报警频繁怎么办 高德地图路线偏差修复与优化方法  电脑没有声音了怎么办 电脑声音问题的全面排查与修复指南【详解】  rabbitmq 持久化有什么缺点?  漫蛙官网(首页入口)_漫蛙漫画稳定访问教程分享  海棠书屋官方在线书籍入口 海棠书屋文学作品浏览官网链接  狙击外星人小游戏在线链接_狙击外星人小游戏网页链接  J*aScript实现网页表单实时输入字段比较与验证教程  Flexbox布局中Stencil组件宽度不显示问题解析与:host尺寸控制  邮政快递寄件查询入口 邮政快递收件查询入口  J*aScript与CSS动画:实现平滑顺序淡入淡出效果并解决显示冲突  Symfony路由参数转换器:实体存在性验证与错误处理策略  《花瓣》创建专辑方法  win11如何运行chkdsk命令 Win11检查和修复磁盘逻辑错误教程【修复】  word怎么将图片设置为页面背景并不影响打印_Word图片背景设置方法  msn官方入口2025登录 msn官网2025直达首页入口  uc浏览器官网网页版使用 uc浏览器官网免费在线首页  lol小红书怎么|直播|?lol小红书|直播|是什么意思?  邦丰播放器频道搜索设置  《绿竹漫游》关闭消息通知方法  铁路12306买票怎么选双人铺 铁路12306卧铺分配规则说明  顺丰快递收费标准查询_如何查看顺丰最新收费价格  悟空浏览器如何恢复关闭的标签页 悟空浏览器撤销关闭网页快捷键设置  以下哪一个是适应长期护理制度发展而设立的新职业  利用Flexbox实现图片元素的二维布局:2x2网格排列指南  《荔枝fm》导出文件教程  哔哩哔哩在线观看入口 B站官网免费进入  vivo云服务一直提示空间不足怎么办 怎么办vivo云服务老是提示空间不足  海棠阅读网页版_进入海棠网页版在线阅读中心  《密马》发布账号方法  word文档行距怎么调?word文档调行距的操作步骤  Flask 应用中图片动态更新与上传:实现客户端定时刷新与服务器端文件管理  使用逻辑应用(Logic Apps)自动处理邮件附件中的XML到Excel  《随手记》关闭首页消息推送方法  手机远程连接电脑方法  使用Selenium在无头Chrome中交互动态菜单和复选框的策略  Python实战:高效处理实时数据流中的最小/最大值  铁路12306入口 铁路12306官网版入口登录网址  《三国:谋定天下》平民全阶段通用阵容  虫虫助手如何更新游戏  抖音评论无法发送如何修复 抖音评论功能操作指南  《i莞家》修改昵称方法  哈尔滨城市通昵称修改方法 

 2025-12-18

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

运城市盐湖区信雨科技有限公司


运城市盐湖区信雨科技有限公司

运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。

 8156699

 13765294890

 8156699@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.