阿里面试SQL-连续售出的商品

推荐阅读文章列表

大数据开发面经汇总【持续更新...】

我的大数据学习之路

大数据开发面试笔记V6.0

SQL题目

来自阿里数据分析二面

有一张淘宝购物订单表dwd_tb_order_detail_di,包含order_id(订单id)、commodity_id (商品id)、ds(下单时间)

问题:计算连续下单大于或等于3次的商品id

-- 举例如下:
-- 输入
order_id commodity_id       ds
    1         A      2024-12-21 10:10
    2         B      2024-12-21 10:12
    3         B      2024-12-21 10:15
    4         B      2024-12-21 10:20
    5         A      2024-12-21 10:40
    6         C      2024-12-21 11:05
    7         C      2024-12-21 11:10
    8         C      2024-12-21 11:30

-- 输出
commodity_id
    B
    C

答案解析

模拟数据

create table dwd_tb_order_detail_di (
order_id varchar(20),
commodity_id varchar(20),
ds varchar(20)
);
INSERT INTO dwd_tb_order_detail_di VALUES 
('1','A','2024-12-21 10:10'),
('2','B','2024-12-21 10:12'),
('3','B','2024-12-21 10:15'),
('4','B','2024-12-21 10:20'),
('5','A','2024-12-21 10:40'),
('6','C','2024-12-21 11:05'),
('7','C','2024-12-21 11:10'),
('8','C','2024-12-21 11:30')
;

思路分析

本题不同于常见的连续多次登录问题

何为连续购买三次及以上的商品?即此次购买商品后,下一次购买仍然是该商品,下下次购买仍然是该商品,下下下次购买可以是该商品也可以不是(不考虑下下下次)

具体代码

select commodity_id
from (
    select 
        commodity_id,
        lead(commodity_id, 1) over(order by ds) commodity_id_1,
        lead(commodity_id, 2) over(order by ds) commodity_id_2
    from dwd_tb_order_detail_di
) t
where commodity_id = commodity_id_1 
and commodity_id = commodity_id_2
group by commodity_id
;

全部评论

相关推荐

头像
2024-12-10 09:16
同济大学 量化分析
量化私募,运维工程师比较急,base北京,行业不限985学历优先,有经验可放宽211系统运维为主,技能点重点需要高性能计算、网络、虚拟化工作内容: 1、保障交易系统稳定性,负责维护交易系统优化,更新,监控,故障处理等; 2、负责公司服务器部署、性能优化、安全配置、健康检查,保障生产环境稳定性; 3、负责代码部署、灰度发布、内部测试环境搭建、日志和监控系统搭建和维 护; 4、负责定位分析系统故障,解决运维突发事故,并对事故进行分析和复盘; 5、负责数据的备份,以及容灾系统的搭建,为数据安全负责; 6、负责自动化运维系统和工具的搭建和维护,提高开发人员工作效率;任职要求:1、211 本科及以上学历,3-6 年左右运维经验;2、熟练 Linux 命令行的使用,有一定的 python 和 shell 编程; 3、掌握基础网络知识,如 tcpip,路由交换,ospf,vpn,有实际的中小型网 络部署、配置、故障排查经验; 4、团队沟通协调能力强、良好的文档整理习惯等; 5、精通监控部署以及调优。搭建网络、硬件、业务等方面的高可用监控,定制 化的展示、报警、报告功能; 6、了解存储基本知识,有一定的存储实操经验; 7、了解高性能计算,有一定的 gpu 方面的能力,包括但不限于安装,监控,调 度;加分项: 1、优秀的搭建高可用的集群环境和自动化运维经验; 2、有云端服务部署和运维经验; 3、有金融相关行业运维经验;4、熟悉 vmware 虚拟化;Base 北京
投递VMware等公司10个岗位
点赞 评论 收藏
分享
评论
1
2
分享
牛客网
牛客企业服务