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

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

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

某滴前数据分析前来分享(这做题感觉太熟悉了
# 只要订单表有记录,就是有订单;
# 订单只有两个状态:完成or取消;(判断依据:有start time就是接上了,就算“完成单”)
# 所以不用管打车记录表的所有字段

# 这类题的模板:先求每一天,用窗口函数order by去圈定一个窗口,在这个窗口里做聚合,可以分组也可以不分组
SELECT t2.dt,finish_num_7d,cancel_num_7d
FROM
    (
    SELECT t1.dt
        ,ROUND((SUM(t1.finish_cnt) OVER(ORDER BY t1.dt ROWS 6 PRECEDING))/7,2) finish_num_7d
        ,ROUND((SUM(t1.cancel_cnt) OVER(ORDER BY t1.dt ROWS 6 PRECEDING))/7,2) cancel_num_7d
    FROM 
        (
        SELECT DATE(order_time) dt
            , COUNT(start_time) finish_cnt
            , COUNT(CASE WHEN start_time IS NULL THEN 1 END) cancel_cnt
        FROM tb_get_car_order
        GROUP BY DATE(order_time)
        ) t1
    ) t2
WHERE t2.dt BETWEEN "2021-10-01" AND "2021-10-03"
# 对所有“7天内”的时间窗口都计算在了t2表;但是最终只取出“某三天”
ORDER BY t2.dt 


全部评论
你好,请教一下,我考虑题目还有一个原因是当天没有订单的情况,这其实是不是不用考虑进来? 因为这里是按平台的7日的数据,所以不会出现某天的数据为空的情况,但是如果是按照某个司机的话是不是就要考虑7天内某天数据为空的情况,从而无法使用一个固定的窗口进行聚合统计
点赞 回复 分享
发布于 2023-05-28 11:12 广东

相关推荐

行云流水1971:你的简历已经有不错的内容基础,但在岗位匹配度、成果量化、逻辑分层上还有优化空间,我结合产品 / 金融科技类岗位偏好帮你调整: 一、现有问题 & 优化方向 信息冗余:课程 / 学生工作与目标岗位关联弱,可精简; 成果颗粒度不足:部分数据缺少 “对比基准”(比如 “效率提升” 没说之前的情况); 岗位标签弱:产品岗核心能力(如需求闭环、PRD 撰写)体现不够突出。 二、优化后简历(以 “金融科技产品岗” 为例) 教育经历 2023.09-2027.06 郑州轻工业大学(公办一本) | 软件工程 | 本科 核心课程:Java 程序设计、数据库原理、Python(匹配产品岗 “技术理解” 需求) 学习成果:专业核心课 90+,获校级一等奖学金; 学生工作:院学生会主席,统筹 6 场校级活动(覆盖 2000 + 人次),锻炼跨部门协作与项目统筹能力。 实习经历
投了多少份简历才上岸
点赞 评论 收藏
分享
评论
7
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务