前言
我又断更了!自己好多东西没搞明白,所以也就没有分享,接下来一定笔耕不辍!!今天继续上一次的必会的常用函数!
首先回顾一下知识点:
1、CASE函数
CASE
WHEN 简单表达式1 THEN 结果表达式1
WHEN 简单表达式2 THEN 结果表达式2 …
WHEN 简单表达式n THEN 结果表达式n
[ ELSE 结果表达式n+1 ]
END
2、日期函数
2021年8月,写法有很多种,比如用year/month函数的
year(date)=2021 and month(date)=8
每天:按天分组group by date
SLogan:利用有限的时间,撸起袖子加油干!既要面包也要玫瑰!!!
一、学习过程
2、日期函数
【SQL29】计算用户的平均次日留存率
解题思路:
对现有关系数据表的列进行拆解重构,目的是实现当日用户与次日用户的对应匹配,通过对question_practice_detail表利用from …left outer join … on …建立自联结,这里重点指出通过on q1.device_id=q2.device_id and datediff(q2.date,q1.date)=1实现联结匹配,datediff(次日,当日)=1即次日-当日=1(相隔一天)发挥构建桥梁作用; DATEDIFF()函数返回两个日期之间的差异
分母count(distinct q1.device_id,q1.date) 通过DISTINCT 对当日的device_id,date进行双项剔重,利用COUNT()统计用户数;同样的分子count(distinct q2.device_id,q2.date)对次日的device_id,date进行双项剔重。
代码如下:
SELECT
count(distinct q2.device_id,q2.date)/