开发者学堂课程【新电商大数据平台2020最新课程:电商项目之用户交易宽表 SQL 实现】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/640/detail/10546
电商项目之用户交易宽表 SQL 实现
SQL 实现用户交易宽表
使用 SQL 来实现
输入代码
with tborder as(
select
from dwd_nshop.dwd_nshop_orders_details o
//form 后写用户基本信息表
join ods_nshop.ods_02_customer c
//然后 join 后写 customer 表
on o.customer_id=c.customer_id
//on 后加入条件两个 customer 的 id 相等
where
bdp_day= ‘20200321’
)
然后来增加值,在用户交易宽表中我们需要的值有用户 id、所在区域、订单数量、订单金额等等。
写入值:
with tborder as(
select
o.order_id,
o.district_money,
o.shipping_money,
o.payment_money,
c.customer_id,
c.customer_natives
from dwd_nshop.dwd_nshop_orders_details o
//form 后写用户基本信息表
join ods_nshop.ods_02_customer c
//然后 join 后写 customer 表
on o.customer_id=c.customer_id
//on 后加入条件两个 customer 的 id 相等
where
bdp_day= ‘20200321’
)
先来查询,看是否可以查到
输入 limit 10
结果存在
取到相应的值后,接着将值进行汇总,继续输入
select
customer_id, //id
customer_natives,
//所在区域
count(order_id) over (partition by customer_id) as orders_count,
sum(payment_money) over (partition by customer_id) as orders_pay,
sum(shipping_money) over (partition by customer_id) as orders_shipping,
sum(district_money) over (partition by customer_id) as orders_district,
current_timestamp() as ct
//生成时间使用获取系统时间
from tborder
之后再来查询,输入 limit 10
结果如下
数据处理完成后,再来插入
insert overwrite table dws_nshop.dws_nshop_usr_orders partition(bdp_day= ‘20200321’)
以上就全部整理了用户交易宽表,此外在聚合时要注意所求的 order 或者是金额都是针对用户来讲,所以必须按照customer_id 进行分组。
再来观察浏览器
点击 dws_nshop_user_orders,再点击 bdp_dav=20200321。