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

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

http://www.nowcoder.com/practice/c5736983c322483e9f269dd23bdf2f6f

#第一步:按照条件筛选全部数据
SELECT * FROM order_info WHERE DATE > "2025-10-15" AND STATUS = "completed" AND product_name IN ("C++","Java","Python")


#第二步:窗口函数-统计两个及以上成功的订单,左连接客户端表
SELECT t.id, t.user_id, t.client_id, t.is_group_buy, cl.name,
    COUNT(STATUS) over(PARTITION BY user_id ORDER BY STATUS) "cnt"
FROM 
    (SELECT * FROM order_info WHERE DATE > "2025-10-15" AND STATUS = "completed" AND product_name IN ("C++","Java","Python"))t
    LEFT JOIN `client` cl
    ON t.client_id = cl.id


#第三步:根据步骤二的表来做筛选即可
SELECT id, is_group_buy, client_name
FROM
    (SELECT t.id, t.user_id, t.client_id, t.is_group_buy, cl.name "client_name",
        COUNT(STATUS) over(PARTITION BY user_id ORDER BY STATUS) "cnt"
    FROM 
        (SELECT * FROM order_info WHERE DATE > "2025-10-15" AND STATUS = "completed" AND product_name IN ("C++","Java","Python"))t
        LEFT JOIN `client` cl
        ON t.client_id = cl.id) tt
WHERE cnt >= 2
ORDER BY id


全部评论

相关推荐

02-04 17:01
南昌大学 Java
牛客96763241...:拿插件直接投就完了,这玩意看运气的
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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