发布网友 发布时间:2023-05-17 02:32
共1个回答
热心网友 时间:2023-09-11 03:28
笔记:
1.窗口函数边界:
复购率: 当前月份购买2次及以上的客户占所有客户比例
回购率:当前月份购买且上个月份也购买的客户占当月所有月份客户比例
思路:
复购率
1、对当月(2月份)的客户分组,计数购买次数
2、筛选购买次数为2以上的,认为是复购群体
回购率
1、筛选当月及上月部分
2、利用客户id进行当月连上月,推荐左连
3、对同一条客户id均有购买记录的,认为是回购群体
注意:
1.连接条件中,条件1为客户key字段,表示同一个客户;条件2为两个月的信息连接(本月日期 = 上月日期 +1个月)
2.ADD_MONTHS:别忘了有个's',add_months只能对完整日期格式进行月份加减(add_months(‘yyyy-MM-dd hh:mm:ss’,N),add_months(‘yyyy-MM-dd’,N)),所以这里先用concat给'年月'增加一个'日'字段,其中N为正则增加,N为负则减少
第一步:根据用户分组,求出用户购买的产品及顺序
cpzl_zw1是cpzl_zw的上一个购买的产品
第三步:为相邻的产品添加排序(即上面lag函数添加的产品)
若相邻产品的排序为3,则表示第三件产品,题目要求前两件产品,则可以根据小于3进行筛选
步骤:
第一步:将两表进行连接(customer为主表)
第二步:按城市、产品进行聚合分组,求出销量
第三步:窗口函数对销量进行排序
第四步:where进行筛选(where不能直接对窗口函数结果进行筛选,所以要再次使用表子连接)
提示:只用到订单表 ods_sales_orders,并列排序 dense_rank 窗口函数