SQL 面试系列(一)【留存率问题】 | 您所在的位置:网站首页 › 用户留存率的要点 › SQL 面试系列(一)【留存率问题】 |
前言
在学 HQL 之前是不太了解 SQL 的,以为 SQL 只可以实现 CRUD ,直到面试的公司让我下去多了解一些 SQL ,我才最近开始再次深入学习 MySQL 和 Oracle。而且越学越发现 SQL 真的是一门很有深度的语言,我以前的使用只是皮毛而已,自惭形秽之下决定必须深入学习 SQL ,毕竟大数据工作之后主要就是 SQL 嘛。 关于留存率问题是一个面试的重点,面一个暑期实习都几乎每次都被问,每次问到留存率我都试图通过障耳法搞晕面试官,结果事实上面试官都能准确发现我回答中的问题。所以不能再拖了,留存率的问题应该好好拿出来深入理解掌握了。 1、留存率问题 1.1、留存率的定义留存率:用户在注册之后的第 N 天仍然登录的比例,称为第 N 日留存率。 1.2、数据准备下面我们通过 SQL 先创建一些数据(用户数据 5000条、登录数据 50w条): -- 留存率问题 -- 示例表 DROP TABLE IF EXISTS t_user; CREATE TABLE t_user( id INT AUTO_INCREMENT PRIMARY KEY, user_name VARCHAR(50) NOT NULL, register_time DATETIME NOT NULL ); SET SESSION cte_max_recursion_depth=9999999; INSERT INTO t_user(user_name, register_time) WITH RECURSIVE t AS ( SELECT 1 n, '2022-01-01 00:00:00' d UNION ALL SELECT n+1, d + INTERVAL '1' MINUTE FROM t WHERE n |
CopyRight 2018-2019 实验室设备网 版权所有 |