LeetCode MySQL题:求解最大商品数量高于所有订单平均值的不平衡订单ID
LeetCode MySQL题目:不平衡订单查询
题目说明
我们需要在电商平台业务数据中筛选出不平衡订单,定义为:订单的最大单品购买数量严格大于所有订单(包含该订单自身)的平均商品购买数量。
相关计算规则如下:
- 单订单平均商品数量 = 该订单所有商品的总购买数量 ÷ 该订单内不同商品的种类数
- 单订单最大商品数量 = 该订单内任意单个商品的最高购买数量
查询要求:输出所有符合条件的order_id,返回结果顺序无要求。
可正确运行的代码
WITH average AS ( SELECT d.order_id, d.product_id, SUM(d.quantity) / COUNT(DISTINCT d.product_id) as average_quantity FROM OrdersDetails as d GROUP BY d.order_id ) SELECT DISTINCT o.order_id FROM OrdersDetails as o JOIN average ON average.order_id = o.order_id GROUP BY o.order_id HAVING MAX(o.quantity) > (SELECT MAX(average_quantity) FROM average) ORDER BY o.order_id ASC;
上述代码已参考Gordon Linoff的建议调整,运行可得到正确结果。
内容的提问来源于stack exchange,提问作者Chirag Subramanian
相关产品推荐
相关产品推荐

