阿里面试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
;

全部评论

相关推荐

迷茫的大四🐶:价格这么低都能满了?
点赞 评论 收藏
分享
真tmd的恶心,1.面试开始先说我讲简历讲得不好,要怎样讲怎样讲,先讲背景,再讲技术,然后再讲提升多少多少,一顿说教。2.接着讲项目,我先把背景讲完,开始讲重点,面试官立即打断说讲一下重点,无语。3.接着聊到了项目的对比学习的正样本采样,说我正样本采样是错的,我解释了十几分钟,还是说我错的,我在上一家实习用这个方法能work,并经过市场的检验,并且是顶会论文的复现,再怎么不对也不可能是错的。4.面试官,说都没说面试结束就退出会议,把面试者晾在会议里面,丝毫不尊重面试者难受的点:1.一开始是讲得不好是欣然接受的,毕竟是学习。2.我按照面试官的要求,先讲背景,再讲技术。当我讲完背景再讲技术的时候(甚至已经开始蹦出了几个技术名词),凭什么打断我说讲重点,是不能听出人家重点开始了?这也能理解,每个人都有犯错,我也没放心上。3.我自己做过的项目,我了解得肯定比他多,他这样贬低我做过的项目,说我的工作是错误的,作为一个技术人员,我是完全不能接受的,因此我就和他解释,但无论怎么解释都说我错。凭什么,作为面试官自己不了解相关技术,别人用这个方式work,凭什么还认为这个方法是错的,不接受面试者的解释。4.这个无可厚非,作为面试官,不打招呼就退出会议,把面试者晾着,本身就是有问题。综上所述,我现在不觉得第一第二点也是我的问题,面试官有很大的问题,就是专门恶心人的,总结面试官说教,不尊重面试者,打击面试者,不接受好的面试者,技术一般的守旧固执分子。有这种人部门有这种人怎么发展啊。最后去查了一下,岗位关闭了。也有可能是招到人了来恶心人的,但是也很cs
牛客20646354...:招黑奴啊,算法工程师一天200?
点赞 评论 收藏
分享
评论
4
5
分享

创作者周榜

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