⑴ sql计算电商各项指标数据
本次笔记主要是记录通过SQL计算电商各项指标数据,包括AARRR部分指标、RFM模型等常用的指标数据;
平台指标:
商品指标:
用户行为指标:
RFM模型:见之前的文章《 SQL建立RFM模型指标的两种方法对比 》
用户留存率:见之前文章《 SQL 查询用户留存率(根据两种不同定义计算) 》
首先我们导入相关数据,并去重数据放进新表 temp_trade;
由于时间关系,以导入如下数据,期间利用
SET date_time = STR_TO_DATE(time,'%Y-%m-%d %H');
set dates=date(date_time);
这两个函数对原表(红框)日期进行处理;
再检查一下关键字段有无缺失值
查询后得出并无缺失。
查询结果无异常值;
检查用户行为数据有没有其他类型;
查询结果无异常值;
-- 建新表,放进 去重后的 数据
create table temp_trade like o_retailers_trade_user;
insert into temp_trade select distinct * from o_retailers_trade_user;
查询结果:
这里定义跳失率=只有浏览行为的用户数/总用户数
查询结果
这里的购买转化率定义为:某段时间产生购买行为的用户数/所有到达店铺的访客人数
查询结果:
同时可以通过这算法求得:每天总行为次数、每天点击次数、收藏次数、加购物⻋次数、购买次数
查询结果如下:
由于转化率的对象是商品,所以以商品id做分组,求对应的用户行为数求和。可得出每商品的在该段时间内的浏览、收藏、加购、购买次数,同时可求得商品购买转化率。
查询结果:
此方法与上面商品转化率大致相同,分组对象改为品类id即可。
查询结果:
首先创建hours的新字段,并提取时间;
查询结果如下:
首先求出各用户的购买次数
查询结果:
用case when函数统计出各复购买次数的用户数
查询结果如下:
最后将行为串联起来,并对其进行用户数统计;
查询结果如下:
(完结)
⑵ SQL里面怎么表示当月21号和次月20号
当月21日:
selectcast(convert(varchar(7),getdate(),120)+'-21'asdatetime)
次月20日:
selectcast(convert(varchar(7),dateadd(mm,1,getdate()),120)+'-20'asdatetime)
⑶ MySQL新增留存率
没错,留存的问题还没有写完,之前两篇把日、周、月当期活跃用户在后续周期的留存率问题解决了。但是还有个非常重要的指标,当期新增用户的留存率,这个指标也是很有价值的,我们必须要关注不同日期拉新用户的质量如何,看看不同时期新用户的后续留存情况,对后续拉新的时间选择也是有参考价值的。
其实实现也很简单,只需要在之前的基础上,先把当期的首次登陆用户找出来就行了。实现方式是,按照用户聚合,然后取日期最小值就能取出每个用户首次登陆日期了,SQL语句如下↓
然后就以此为基础,通过左连接把用户表格再连接一次,判断与首次登陆的日期相差多少天就行了,就能判断是第N天有活跃,就能计算N日留存和留存率了,SQL语句和结果如下↓
后面就和之前思路一样了,就可以求出日留存率情况了,SQL语句如下,解释可以看前面两篇。
然后按月实现方式和上一篇一样的思路,关联一个辅助表就行了,这里不详细解释了,可以参考上一篇,完整SQL语句和结果如下↓
那么按周的留存率也是一样的,SQL语句和结果如下↓
End
◆ PowerBI开场白
◆ Python高德地图可视化
◆ Python不规则条形图
⑷ 如下问题的sql语句怎么写
由于手上没有sql环境,我这边直接模拟一下,有错误的地方请指出:
1.每天每个地区播放次数最多的三首歌
selecttop3*from
(
selecta.area,b.songid,convert(varchar(30),b.date,111)as[每天],
sum(b.play_cnt)as[播放次数]
fromuseraleftjoinsongbona.userid=b.userid
groupbya.area,b.songid
)torderby[播放次数]desc
2.留存率
select*from(
selectb.*
fromuseraleftjoinsongbona.userid=b.userid
whereb.date>='2019-5-10:00:00'
andb.date<='2019-5-223:59:59'
)t
whereexists(
selectnullfromsongwheresong.songid=t.songid
and
convert(varchar(30),song.date,111)=
convert(varchar(30),dateadd(d,-1,t.date),111)
)
请试一下,如有疑问,及时沟通!
⑸ sql计算留存率算法
select ( select count(distinct userid ) from 登录表 where 登录时间 = 今天 ) / ( select count(1) from 注册表 where 注册时间 = 昨天 ) as 户留存率
⑹ sql数据库日志保存六个月在哪里设置
1、首先打开SQLServerManagementStudio。
2、其次在对应连接上右键,选择“属性”。
3、再次在“服务属性”上,选择“数据库设置”。
4、最后在右边修改配置即可。