题解 | #牛客的课程订单分析(五)#

牛客的课程订单分析(五)

https://www.nowcoder.com/practice/348afda488554ceb922efd2f3effc427

WITH qualified AS(
    SELECT user_id, SUM(IF(status='completed', 1, 0)) AS cnt
    FROM order_info
    WHERE (product_name = 'C++'
    OR product_name = 'Java'
    OR product_name = 'Python')
    AND date > '2025-10-15'
    GROUP BY user_id, status
    HAVING cnt >= 2
),
buy_date AS(
    SELECT user_id, o.date, DENSE_RANK() OVER(
        PARTITION BY o.user_id
        ORDER BY o.date
    ) AS date_rank
    FROM order_info AS o
    WHERE status = 'completed'
    AND (product_name = 'C++'
    OR product_name = 'Java'
    OR product_name = 'Python')
    AND date > '2025-10-15'
),
buy_first_date AS(
    SELECT b.user_id, b.date AS first_buy_date
    FROM buy_date AS b
    WHERE date_rank = 1
    AND date > '2025-10-15'
),

buy_second_date AS(
    SELECT b.user_id, b.date AS second_buy_date
    FROM buy_date AS b
    WHERE date_rank = 2
    AND date > '2025-10-15'
)

SELECT q.user_id, bf.first_buy_date, bs.second_buy_date, q.cnt
FROM qualified AS q
INNER JOIN buy_first_date AS bf
ON q.user_id = bf.user_id
INNER JOIN buy_second_date AS bs
ON q.user_id = bs.user_id
ORDER BY q.user_id ASC;

全部评论

相关推荐

点赞 评论 收藏
分享
不要停下啊:大二打开牛客,你有机会开卷了,卷起来,去找课程学习,在牛客上看看大家面试笔试都需要会什么,岗位有什么需求就去学什么,努力的人就一定会有收获,这句话从来都经得起考验,像我现在大三了啥也不会,被迫强行考研,炼狱难度开局,啥也不会,找工作没希望了,考研有丝丝机会
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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