题解 | #牛客的课程订单分析(七)#
牛客的课程订单分析(七)
https://www.nowcoder.com/practice/d6f4a37f966145da8900ba9edcc4c068
订单表里设备有编码0,对应的正好是团购,设备表里没有编码0,结果想要显示订单表的全部信息,就要考虑订单表左连接,并且用ifnull函数直接为连接后的null赋值。最后计数用聚合函数+group by,直接分组显示各组计算结果,不用窗口函数的原因是窗口函数保留数据细节,存在重复信息,还要再套一层。。。
SELECT IFNULL(c.name,"GroupBuy") source,COUNT(*) cnt
FROM(
SELECT *,COUNT(product_name)OVER(PARTITION BY user_id) as nm
FROM order_info
WHERE date>"2025-10-15"
AND product_name IN ("Python","C++","Java")
AND status="completed")t1
LEFT JOIN client c ON c.id=t1.client_id
WHERE t1.nm>1
GROUP BY c.name
ORDER BY source
