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

news2024/11/25 21:19:25

牛客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.coloradmin.cn/o/2205120.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一、安装VMWARE和CentOS

一、安装VMware 1、基本说明 学习Linux需要一个环境,我们需要创建一个虚拟机,然后在虚拟机上安装一个Centos系统来学习 先安装virtual machine 15.5再安装Linux(CentOS 7.6/centos8.1)原理示意图 2、vmware15.5下载 官方地址:https://www.vmware.com/…

Map的实现类:HashMap

在API获取HsahMap类的全部信息 实例代码:创建一个Student类和Demo02 package com.map;public class Student {private String name;private int stuNo;public Student(String name, int stuNo) {this.name name;this.stuNo stuNo;}public String getName() {retu…

springboot酒店在线预订系统

基于springbootvue实现的酒店在线预订系统 (源码L文ppt)4-082 4.2 系统结构设计 构图是系统的体系结构,体系结构是体系结构体系的一部分,体系结构体系是体系结…

模型案例:| 野生鸟类检测模型!

导读 2023年以ChatGPT为代表的大语言模型横空出世,它的出现标志着自然语言处理领域取得了重大突破。它在文本生成、对话系统和语言理解等方面展现出了强大的能力,为人工智能技术的发展开辟了新的可能性。同时,人工智能技术正在进入各种应用领…

24.4 基于consul服务发现模式

本节重点介绍 : consul 安装consul go代码注册服务,注销服务,获取服务node_exporter改造为consul服务发现在数量比较大时,在注册服务的时候,关闭check,可以降低consul的压力 consul 安装 准备工作 # 下载consul wge…

实践体验密集小目标检测,以小麦麦穗颗粒为基准,基于YOLOv9全系列【yolov9/t/s/m/c/e】参数模型开发构建智能精准麦穗颗粒检测计数系统

对于常规的目标检测任务来说,诸如:COCO、VOC这类基础的数据场景,涌现出来了一些列性能初衷的检测模型,YOLO系列就是其中的佼佼者,不断地刷榜取得了越来越好的效果,不过这些评测指标是基于COCO、VOC这类公开…

信息系统项目管理师(十大管理域、五大过程组)

前言:信息系统项目管理师重点掌握每个过程中的ITO,即输入(Inputs)、工具(Tools)、输出(Outputs)。还有每个过程属于哪个过程组。 十大管理:整体管理、范围管理、进度管理、成本管理、质量管理、人力资源管理、沟通管理、干系人管理、风险管理…

猫头虎分享:Python库 Django 的简介、安装、用法详解入门教程

猫头虎分享:Python库 Django 的简介、安装、用法详解入门教程 🚀🐍 今天猫头虎收到了一位粉丝的问题:“猫哥,如何在项目中使用Django搭建一个Web应用呢?”。这可是很多刚接触Python开发的朋友常遇到的困惑…

C++和OpenGL实现3D游戏编程【连载14】——VBO、VAO和EBO应用

🔥C和OpenGL实现3D游戏编程【目录】 1、本节实现的内容 我们从一开始学OpenGL到现在,OpenGL的图形绘图必须在glBegin()和glEnd()函数之间完成,在此基础之上,才能进行后续操作功能。但是我们今天要讨论一下OpenGL图形绘制的模式&a…

前端父子传递属性值

1. Vue3.4.X之前  2. Vue3.4.X之后版本 defineModel 父页面  子页面   

Python | Leetcode Python题解之第463题岛屿的周长

题目: 题解: class Solution:def islandPerimeter(self, grid: List[List[int]]) -> int:rowlen(grid)collen(grid[0])nums0c0gridgrid[[0]*col]for i in range(row):grid[i].append(0)for j in range(col):if grid[i][j]1:nums1if grid[i][j]1 and …

跨境独立站还能做多久?谈谈独立站的长期价值

这几年,品牌出海与跨境独立站成了商业圈子的热门话题。伴随而来的则是日益激烈的市场竞争,不少新入局的卖家纷纷抱怨:“现在做独立站已经赚不到钱了!”都发出了灵魂拷问,**跨境独立站还能做几年?**跨境电商…

【hot100-java】合并 K 个升序链表

链表篇 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val val; }* ListNode(int val, ListNode next) { this.val val; this.next next; }* }*/ class Solu…

基于Python的在线音乐平台

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏:…

qemu启动busybox虚拟机网络连接配置

一、busybox文件系统网络问题 由于根文件是用busybox构建,所以很多配置文件是没有的,包括部分网络的默认设置。启动虚拟机后只能使用ip命令和ifconfig命令查看网络状态。 二、开启qemu网络支持 想要使虚拟机上网,最简单的方式可以使用 -netde…

javaweb 文件存储

文件上传,是指将本地图片、视频、音频等文件上传到服务器,供其他用户浏览或下载的过程。 文件上传在项目中应用非常广泛,我们经常发微博、发微信朋友圈都用到了文件上传功能。 上传文件的原始form表单,要求表单必须具备以下三点…

双十一买些提高幸福感的生活单品!五款精选好物推荐~

双十一购物狂欢即将来临,这是一年一度的购物盛宴,家电和数码产品通常会在这个时期提供诱人的折扣。但品牌众多,每款产品又各有千秋,让人难以抉择。今天,我将分享一些在双十一期间值得考虑的高品质好物,让我…

【视频笔记】408新增知识点信号——里昂视频

文章目录 **2.信号****3.信号的实现**4.信号的处理**①忽略信号****②执行信号的默认操作****③捕获井处理信号**几个Linux支持的典型信号: **5.信号的产生**① **通过终端按键(键盘)产生信号**例如,CtrlC发送2号信号SIGINT、Ctrl\发送3号信号SIGQUIT② …

Matlab实现海洋捕食者优化算法优化回声状态网络模型 (MPA-ESN)(附源码)

目录 1.内容介绍 2部分代码 3.实验结果 4.内容获取 1内容介绍 海洋捕食者优化算法(Marine Predators Algorithm, MPA)是一种基于海洋生物捕食行为的新型群体智能优化算法。MPA通过模拟海洋捕食者如鲨鱼、海豚等在寻找猎物时的追踪、包围和攻击行为&…

双十一购买清单,应该如何选购宠物空气净化器,有哪几款推荐

作为一个宠物博主,每天都有人来问我家里养了猫应该怎么样才能清理浮毛,到底有哪些值得推荐。 这我可是有话说,当初就是心血来潮养了两只长毛猫,直到现在都还一直在清理猫咪掉毛的问题。猫咪掉的毛,不仅是会掉在沙发上…