当前位置: 首页 > article >正文

牛客SQL29详解 计算用户的平均次日留存率

牛客SQL29详解 计算用户的平均次日留存率

  • 牛客SQL29详解 计算用户的平均次日留存率

叮嘟!这里是小啊呜的学习课程资料整理。好记性不如烂笔头,今天也是努力进步的一天。一起加油进阶吧!
在这里插入图片描述

牛客SQL29详解 计算用户的平均次日留存率

题目:
现在运营想要查看用户在某天刷题后第二天还会再来刷题的平均概率。
请你取出相应数据。

在这里插入图片描述

解题总体逻辑:

1、计算第二天再来的记录数量 (t1):
使用自连接查找在某一日期出现的设备 ID,且该设备 ID 在前一天也有记录。
计算这些设备 ID 和日期组合的唯一数量。

2、计算总记录数量 (t2):
计算 question_practice_detail 表中所有唯一的设备 ID 和日期组合数量。

3、最终计算:
将 t1 的结果(第二天再来的设备数量)除以 t2 的结果(总的设备和日期组合数量),得到平均值 avg_ret。

使用场景:
分析用户的回访情况,即有多少设备在某一天后又回来了。
计算这些设备的比例来评估用户的留存情况。
题解:

select
  (t1.num / t2.num) as avg_ret
from
  ( -- 计算第二天再来的记录数量
    select
      count(distinct a.device_id,a.date) as num
    from
      question_practice_detail a
      left join question_practice_detail b on a.device_id = b.device_id
      and a.date = date_add(b.date, interval -1 day)
    where
      b.device_id is not null
  ) t1,
  ( -- 计算总记录数量
    select
      count(distinct device_id, date) as num
    from
      question_practice_detail
  ) t2;
COUNT() 函数是一个聚合函数,用于计算表中行的数量或特定列的非空值数量。

COUNT(*) 计算表中的所有行,包括 NULL 值
COUNT(column_name) 只计算该列中的 非NULL 值
COUNT(DISTINCT column_name) 计算该列中 唯一且 非NULL 的值,即该列的不同值的数目

count(distinct a.device_id,a.date) as num
计算在 question_practice_detail 表中不同设备(device_id)和日期(date)组合的数量。
这里的 num 是计算的结果,即第二天再来的记录数量。
left join question_practice_detail b on a.device_id = b.device_id
进行自连接,将表 a 与表 b 连接。
条件是 a.device_id 等于 b.device_id,并且 a.date 等于 b.date 的前一天。

也就是说,它在查找那些在某一天(a.date)再次出现的设备 ID(device_id)。
where
      b.device_id is not null
行过滤条件:
确保只有那些在表 b 中有匹配记录的 a 记录被计算。
这意味着设备在前一天确实存在过。

Ending!
更多课程知识学习记录随后再来吧!

就酱,嘎啦!

在这里插入图片描述

注:
人生在勤,不索何获。


http://www.kler.cn/news/342863.html

相关文章:

  • MySQL数据库表分区
  • DBO-BP回归预测 | MATLAB实现DBO-BP蜣螂优化算法优化神经网络多输入单输出回归预测
  • 20241011给荣品RD-RK3588-AHD开发板刷荣品预编译的Buildroot之后打开AP6275P的BT【命令行】
  • 单通道 LVDS 差分线路接收器MS21112S
  • 10.10 工作笔记
  • go 的 timer reset
  • 报错笔记
  • 基于模型的强化学习方法4大类灌水范式
  • 分布式常见面试题总结
  • 视频如何转换mp4模式?格式转换软件带你高清无损一秒转换
  • 猫头虎分享:Python库 Django 的简介、安装、用法详解入门教程
  • CANoe_调用C#控件的方法_DEMO方法演示
  • R知识图谱1—tidyverse玩转数据处理120题
  • 在 Linux 上使用 GPG 加解密文件
  • html渲染优先级
  • MySQL(B站CodeWithMosh)——2024.10.4(7)
  • Vue组件库Element-ui
  • vscode显示.vscode文件
  • 【linux开发-Qt】-信号与槽机制
  • unity ps 2d animation 蛇的制作