❤️博客主页: 楚生辉
❤️系列专栏:【LeetCode刷题】
❤️一句短话: 坚持不懈,孜孜不倦

1.题目描述

OrdersDetails

+-------------+------+
| Column Name | Type |
+-------------+------+
| order_id    | int  |
| product_id  | int  |
| quantity    | int  |
+-------------+------+
(order_id, product_id) 是此表的主键。
单个订单表示为多行,订单中的每个产品对应一行。
此表的每一行都包含订单id中产品id的订购数量。

您正在运行一个电子商务网站,该网站正在寻找不平衡的订单。不平衡订单的订单最大数量严格大于每个订单(包括订单本身)的平均数量。

订单的平均数量计算为(订单中所有产品的总数量)/(订单中不同产品的数量)。订单的最大数量是订单中任何单个产品的最高数量。

编写SQL查询以查找所有不平衡订单的订单id

按任意顺序返回结果表。

查询结果格式如下例所示。

实例:

输入:
OrdersDetails 表:
+----------+------------+----------+
| order_id | product_id | quantity |
+----------+------------+----------+
| 1        | 1          | 12       |
| 1        | 2          | 10       |
| 1        | 3          | 15       |
| 2        | 1          | 8        |
| 2        | 4          | 4        |
| 2        | 5          | 6        |
| 3        | 3          | 5        |
| 3        | 4          | 18       |
| 4        | 5          | 2        |
| 4        | 6          | 8        |
| 5        | 7          | 9        |
| 5        | 8          | 9        |
| 3        | 9          | 20       |
| 2        | 9          | 4        |
+----------+------------+----------+
输出:
+----------+
| order_id |
+----------+
| 1        |
| 3        |
+----------+
解释:
每份订单的平均数量为:
- order_id=1: (12+10+15)/3 = 12.3333333
- order_id=2: (8+4+6+4)/4 = 5.5
- order_id=3: (5+18+20)/3 = 14.333333
- order_id=4: (2+8)/2 = 5
- order_id=5: (9+9)/2 = 9每个订单的最大数量为:
- order_id=1: max(12, 10, 15) = 15
- order_id=2: max(8, 4, 6, 4) = 8
- order_id=3: max(5, 18, 20) = 20
- order_id=4: max(2, 8) = 8
- order_id=5: max(9, 9) = 9订单1和订单3是不平衡的,因为它们的最大数量超过了它们订单的平均数量。

2.代码实现

SELECT order_id
FROM OrdersDetails
GROUP BY order_id
HAVING max(quantity) >  ALL (SELECT AVG(quantity) FROM OrdersDetails GROUP BY order_id)

3.总结

该题目中直接使用以下代码是不行的,题目中明确描述了要大于此订单本身的平均商品数量,如果不使用All,这样只要最大值大于所有订单中其中一个订单的平均数量就会判断为真,也就该sql会把所有的order_id都筛选出来

SELECTorder_id
FROMOrdersDetails
GROUP BYorder_id
HAVINGMAX( quantity ) > avg( quantity )

学习了sql中All与Any的用法

【LC中等】1867. 最大数量高于平均水平的订单相关推荐

  1. 史上最全程序员调查报告:一半开发者是全栈,七成认为自己能力高于平均水平

    来源 | Stack Overflow Blog 译者 | 张婵.Debra Stack Overflow 的年度开发者调查是面向全球开发者的规模最大.最全面的调查,每年的调查内容会涵盖开发人员最喜欢 ...

  2. 2021年全国各地区居民人均可支配收入排行榜:上海、北京人均可支配收入超过7万元,8个省份高于全国平均水平(附年榜TOP31详单)

        榜单解读:     国家统计局的数据显示,2021全国居民人均可支配收入35128元,同比名义增长9.1%,上海.北京.浙江.江苏.天津.广东.福建.山东8个省份人均可支配收入高于全国平均水平 ...

  3. 中国CRO市场复合增速超20%高于全球平均水平

    大部分的SAS程序员是在CRO公司工作的,所以我是比较关心CRO这个行业的发展的,大家可能已经注意到今年招聘市场的冷清,对未来是否感到迷茫?在过去四五年的时间CRO行业是爆发式增长的时期,很多从业人员 ...

  4. 谷歌旗下DeepMind开发出编程机器人,已达人类程序员平均水平!

    近期,世界著名的编程竞赛网站Codeforces发布了一篇名为<AlphaCode ( DeepMind) Solves Programming Problems on CodeForce> ...

  5. 院士发言:有高校博士后待遇比国际平均水平高出一倍,这不正常!

    3月6日,全国政协委员.中国科学院院士舒红兵在小组发言中表示,提高科学工作者待遇是件好事,但是要注意不能走向另一个极端:一些高校博士后的待遇比国际平均水平高出一倍(部分国内高校博士后待遇达到年薪70万 ...

  6. 2021年第四季度全球消费者信心总体持平,印度仍为全球最高,中国大幅增长,日本仍远低于全球平均水平 | 美通社头条...

    要闻摘要:2021年第四季度全球消费者信心总体持平.歌礼公布口服双前药及其抗病毒核苷类似物抑制奥密克戎变异株的积极数据.单组分的"卫星Light"新冠疫苗已在印度批准.麦格纳业内首 ...

  7. 最新软件工程师薪资大揭秘!你的薪资达到平均水平了吗?

    专栏 | 九章算法 网址 | www.jiuzhang.com 你是否好奇不同区域.不同入行时间以及不同编程语言的软件工程师的平均薪酬都是多少呢?想不想了解如果跳槽到软件工程师或开发人员岗位后的收入大 ...

  8. 程序人生 - 全国程序员5月工资出炉,平均14926元,你达到平均水平了吗?

    据最新统计,2021年5月份全国招收程序员429056人:平均工资14926元:工资中位数13000元! 这份工资调查是面向全体程序员,不仅有刚毕业的小白,也有工作很多年的大神,所以没达到平均水平也不 ...

  9. 秦淮数据发布2021 ESG报告 连续三年PUE优于行业平均水平

    10月18日,秦淮数据集团(NASDAQ:CD)正式发布<2021秦淮数据集团环境.社会及治理报告(2021 Chindata Group Environmental, Social and G ...

最新文章

  1. androidHandler讲解
  2. ab plc软件_回收三菱PLC模块西门子模块AB模块数控模块单片机回收【三菱plc吧】...
  3. kl散度度量分布_论“邻里关系”的学问:度量和改进图信息在图神经网络中的使用 | AI Time PhD ICLR...
  4. 96秒100亿!如何抗住双11高并发流量?
  5. Javascript -- 二叉树(先序,中序,后序实现)
  6. SAP License:SAP Concur是什么?
  7. sql sever 2008 使用SSMS实现自动备份,每周一次,完整备份
  8. 38个Pandas实用技巧
  9. C# OO(初级思想)。
  10. 洛谷P2886牛继电器
  11. (转)Windows API User32.dll详细介绍
  12. 基于jquery的全局ajax函数处理session过期后的ajax操作
  13. 计算机考试准考证怎么下载
  14. 使用Springboot开发前后端分离校园智能出行拼车系统
  15. 小米4C官方/第三方ROM下载
  16. python 费马检测
  17. gradle下载安装(个人记录)
  18. 中国大学计算机系写英语论文,计算机专业英语学论文题目 计算机专业英语论文题目怎样取...
  19. 圣诞树 圣诞树 圣诞树_圣诞网页设计资源
  20. Python语音识别,让人工智能给你读读书,你是想听——萝莉音?御姐音?大叔音?正太音?这些任你选择哦~~~

热门文章

  1. 同事离职做假证,顺利拿到大公司 Offer!!
  2. 排除Windows XP无法启动故障
  3. leetcode面试题46. 把数字翻译成字符串
  4. 小谈SCI正刊和特刊(专刊)的区别
  5. 快速上手物联网解决方案(1)—— 物模型
  6. Vs 设置类、接口默认创建的模板
  7. [深入理解Android卷二 全文-第八章]深入理解ContentService和AccountManagerService
  8. oppo包名_OPPO开放平台快应用常见FAQ
  9. 贪心法求解背包问题 C++
  10. arm-linux-strip是减肥工具而不是压缩工具