ADS 层需要在 DWS 层的数据上计算复购率,并存储结果表。复购率可以从 DWS 层的用户购买商品明细表中进行计算。
其中品牌 id、一级品类 id、一级品类名可以从用户购买商品明细表中直接获取,统计月份、统计日期也可以从当前时间获取。
剩下的购买人数、购买 2 次及以上人数、单次复购率、购买 3 次及以上人数、多次复购率,需要从用户购买商品明细表中的当日下单数进行计算。
购买人数=count(1);购买 2 次、3 次及以上人数,可以对 user_id 进行分组,然后聚合,查看总数即可。复购率的话,使用购买次数除以购买人数即可。
1. 在 Node03 节点,/home/warehouse/sql 目录下编写 ads_sale_ddl.sql,创建 DWS 层数据表:
vim /home/warehouse/sql/ads_sale_ddl.sql
SQL 脚本内容如下:
-- 进入数据库
use mall;
-- 创建品牌复购率表
drop table ads_sale_tm_category1_stat_mn;
create table ads_sale_tm_category1_stat_mn
(
tm_id string comment '品牌 id ' ,
category1_id string comment '1 级品类 id ',
category1_name string comment '1 级品类名称 ',
buycount bigint comment