leetcode-SQL-1867. 最大数量高于平均水平的订单

简介: leetcode-SQL-1867. 最大数量高于平均水平的订单

题目

题目链接

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是不平衡的,因为它们的最大数量超过了它们订单的平均数量。

解题

题目想要表达的意思是查询订单的号码,这些订单的最大quantity 要严格大于所有订单的平均quantity

select
    order_id
from OrdersDetails
group by order_id
having max(quantity)>all(
    select avg(quantity) 
    from  OrdersDetails 
    group by order_id
)
相关文章
|
SQL 大数据
每天一道大厂SQL题【Day03】订单量统计
每天一道大厂SQL题【Day03】订单量统计
162 0
|
SQL HIVE UED
【Hive SQL 每日一题】分析电商平台的用户行为和订单数据
作为一名数据分析师,你需要分析电商平台的用户行为和订单数据。你有三张表:`users`(用户信息),`orders`(订单信息)和`order_items`(订单商品信息)。任务包括计算用户总订单金额和数量,按月统计订单,找出最常购买的商品,找到平均每月最高订单金额和数量的用户,以及分析高消费用户群体的年龄和性别分布。通过SQL查询,你可以实现这些分析,例如使用`GROUP BY`、`JOIN`和窗口函数来排序和排名。
1054 2
|
SQL 数据挖掘 数据处理
「SQL面试题库」 No_28 订单最多的客户
「SQL面试题库」 No_28 订单最多的客户
|
SQL
leetcode-SQL-1549. 每件商品的最新订单
leetcode-SQL-1549. 每件商品的最新订单
88 0
|
SQL 测试技术
leetcode-SQL-586. 订单最多的客户
leetcode-SQL-586. 订单最多的客户
158 0
java202304java学习笔记第六十六天-ssm-动态sql-订单环境搭建
java202304java学习笔记第六十六天-ssm-动态sql-订单环境搭建
171 0
|
SQL 大数据 开发者
电商项目之交易订单明细流水表 SQL 实现(下)|学习笔记
快速学习电商项目之交易订单明细流水表 SQL 实现(下)
电商项目之交易订单明细流水表 SQL 实现(下)|学习笔记
|
SQL 存储 NoSQL
基于 MySQL + Tablestore 分层存储架构的大规模订单系统实践-SQL 查询和分析
前言前面我们介绍了基于 MySQL + Tablestore 分层架构的订单系统。订单数据储存进入 Tablestore 后,用户可以使用 SDK 中的 API 访问数据,也可以继续使用 SQL 访问 Tablestore 中的数据。Tablestore 提供了多种 SQL 的接入方式,客户可以通过 DLA 访问 Tablestore,也可以利用 Tablestore 自身对 SQL 的支持能力,
1181 0
基于 MySQL + Tablestore 分层存储架构的大规模订单系统实践-SQL 查询和分析
|
SQL HIVE
hive ETL之物流行业-订单跟踪SLA sql
-- case1 -- --========== order_created ==========-- /* 10703007267488    2014-05-01 06:01:12.334+01 10101043505096    2014-05-01 07:28:12.342+01 10103043509747    2014-05-01 07:50:12.33+01 10103043
1500 0
|
12月前
|
关系型数据库 MySQL 网络安全
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")

热门文章

最新文章