昨天开始规范格式,于是...| #牛客的课程订单分析(五)#

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

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

只能说从昨天开始强迫自己增加代码可读性之后,写出来的SQL突然就美丽了许多。。

WITH ranked AS (
    SELECT 
        *, 
        row_number() over (partition by user_id ORDER BY date) AS rn, 
        count(*) over (partition by user_id) AS cnt 
    FROM 
        order_info
    WHERE 
        date >= '2025-10-15' AND 
        status = 'completed' AND 
        (product_name = 'Python' OR product_name = 'C++' OR product_name = 'Java')
), 

first AS (
    SELECT 
        user_id, 
        date AS first_buy_date, 
        cnt
    FROM 
        ranked
    WHERE 
        rn = 1 AND cnt >= 2
    ORDER BY 
        user_id
), 

second AS (
    SELECT
        user_id, 
        date AS second_buy_date
    FROM 
        ranked
    WHERE 
        rn = 2 AND cnt >= 2 
    ORDER BY 
        user_id
)

SELECT
    f.user_id, 
    first_buy_date, 
    second_buy_date,
    cnt
FROM
    first f 
JOIN 
    second s 
ON 
    f.user_id = s.user_id

全部评论

相关推荐

不愿透露姓名的神秘牛友
03-29 08:32
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务