新零售数仓项目实战(二)

由于数据不足,向us_order表中插入数据

INSERT INTO snbap_ods.us_order(order_no,user_id,user_name,order_money,order_type,order_status,pay_status,pay_type,update_time) 
SELECT order_no,user_id,user_name,ROUND(RAND()*100,2),ROUND(RAND()),ROUND(RAND()*2),ROUND(RAND()),ROUND(RAND()*2),CURRENT_TIMESTAMP() 
FROM snbap_ods.us_order;

order_type 0线下订单 1线上订单
order_status 0已成交 1已收货 2已取消
pay_type 0现金支付 1第三方支付 2银行卡/网银支付
pay_status 0未支付 1已支付
查看支付状态(其他状态修改相应sql语句即可)

select count(1),pay_status from us_order group by pay_status;

–首单、末单及距今时间

select user_id,min(order_date) first_order_date,max(order_date) last_order_date,
datediff(current_date(),min(order_date)) first_order_days,
datediff(current_date(),max(order_date)) last_order_days
from snbap_ods.us_order group by user_id;

–首单、末单时间及距今时间及近30天-90天含退拒的订单数量、金额不含退拒的订单数量、金额

create table snbap_dw.user_order_info as
select user_id,min(order_date) first_order_date,max(order_date) last_order_date,
datediff(current_date(),min(order_date)) first_order_days,
datediff(current_date(),max(order_date)) last_order_days,
sum(case when order_status <> 2 and order_date between date_sub(current_date(),30) 
and current_date() then 1 else 0 end) order_cnt_30,
sum(case when order_status <> 2 and order_date between date_sub(current_date(),30) 
and current_date(
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值