SQL——日期函数的应用 / 秦路老师SQL章节的练习题讲解

以下有两份关于客户信息与下单信息的表格,分别名为:userinfo、orderinfo。需要解答以下的问题

一、统计不同月份的下单人数

SELECT  date_format(paidTime,'%Y-%m') ,count(distinct userID) FROM data2.orderinfo
WHERE isPaid != "未支付"  -- 过滤掉未支付的客户
group by date_format(paidTime,'%Y-%m');
-- 订单表中只有2016年的数据,因此date_format(paidTime,'%Y-%m')可以直接用 month(paidTime)来代替更简单

 二、统计用户三月份的回购率和复购率

  • 复贩率是一段时间内多次消费的用户占总消费用户数占比。
  • 回贩率是一段时间内消费过的用户,在下一段时间内仍旧消费的占比。
    /* 复购率的计算
    思路:计算复购率,就要同时计算出呈现总客户数,和复购客户数。
         1、先用WHERE过滤3月和已支付的数据;
         2、要区分出购买一次和购买多次的客户,就用group by对客户分组,并要输出每个客户的购买次数(命名为ct);
         3、要想最后呈现出总客户数,和复购客户数,就要用到嵌套表,对上述表(t)再进行操作;
         4、总客户数的计算很简单,对购买次数(ct)使用count嵌套if函数(如果大于1,则累加,否则不累加)。
    */
    
    select count(*) AS total, count(if(ct>1,ct,null)) AS re, count(if(ct>1,ct,null))/count(*) AS rate from 
    	(SELECT  userID, count(userID) A
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值