题解 | #国庆期间近7日日均取消订单量#

国庆期间近7日日均取消订单量

https://www.nowcoder.com/practice/2b330aa6cc994ec2a988704a078a0703

# dt、近七日日均订单完成量、日均订单取消量
# 构造 p-date 订单完成量、订单取消量(根据start_time是否为空判断完成or取消)  
# select date(start_time) as dt,
# count(start_time) as finish_num,
# sum(if(start_time is null,1,0)) as cancel_num
# from tb_get_car_order
# # where date(start_time) is not null   # 筛选不为空的
# group by date(start_time)

# 标记订单状态(完成or未完成)
with table1 as
(
    select date_format(order_time,'%Y-%m-%d') as dt,
    if(start_time is null,0,1) as if_finish,
    if(start_time is null,1,0) as if_cancel
    from tb_get_car_order
    # where date(start_time) is not null
),
table2 as (
    select dt,
    sum(if_finish) as finish_num,
    sum(if_cancel) as cancel_num
    from table1
    group by dt
),
# 构造近七日日均订单完成量、日均订单取消量
table3 as(
    select dt,
    round(avg(finish_num)over(order by dt rows 6 preceding),2) as finish_num_7d,
    round(avg(cancel_num)over(order by dt rows 6 preceding),2) as cancel_num_7d
    from table2
)
select *
from table3
where dt>='2021-10-01' and dt<='2021-10-03'
# where dt between '2021-10-01' and '2021-10-03' 
# 注意点1:时间筛选要用order_time,不能用start_time
# 注意点2: 最后再用where单独筛选一遍需要的时间,而不是过程中where筛选...

全部评论

相关推荐

CADILLAC_:我要用bava 不要用java 了 啊啊啊啊啊啊啊啊啊啊啊
点赞 评论 收藏
分享
Rena1ssance_:对的,要是面评没太烂,勤更新简历等捞就行了,腾讯可以无限复活
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务