leetcode-SQL-586. 订单最多的客户

简介: leetcode-SQL-586. 订单最多的客户

题目

题目链接

表: Orders

+-----------------+----------+
| Column Name     | Type     |
+-----------------+----------+
| order_number    | int      |
| customer_number | int      |
+-----------------+----------+
Order_number是该表的主键。
此表包含关于订单ID和客户ID的信息。

编写一个SQL查询,为下了 最多订单 的客户查找 customer_number 。

测试用例生成后, 恰好有一个客户 比任何其他客户下了更多的订单。

查询结果格式如下所示。

示例 1:

输入: 
Orders 表:
+--------------+-----------------+
| order_number | customer_number |
+--------------+-----------------+
| 1            | 1               |
| 2            | 2               |
| 3            | 3               |
| 4            | 3               |
+--------------+-----------------+
输出: 
+-----------------+
| customer_number |
+-----------------+
| 3               |
+-----------------+
解释: 
customer_number 为 '3' 的顾客有两个订单,比顾客 '1' 或者 '2' 都要多,因为他们只有一个订单。
所以结果是该顾客的 customer_number ,也就是 3 。

解题

1.不考虑并列第一的情况

排序后,选取第一个

select  
    customer_number
from 
    Orders
group by customer_number
order by count(*) desc
limit 1;

2.考虑并列第一的情况

给每个顾客,根据订单多的排号。

通过子查询,找到并列第一的。

select customer_number
from 
(
    select customer_number,rank() over(order by count(customer_number) desc) as order_num
    from Orders
    group by customer_number
)as t
where t.order_num=1;
相关文章
|
6天前
|
SQL
leetcode-SQL-1607. 没有卖出的卖家
leetcode-SQL-1607. 没有卖出的卖家
23 0
|
6天前
|
SQL
leetcode-SQL-262. 行程和用户
leetcode-SQL-262. 行程和用户
24 1
|
6天前
|
SQL 大数据 HIVE
每天一道大厂SQL题【Day06】电商购买金额统计实战
每天一道大厂SQL题【Day06】电商购买金额统计实战
45 0
|
SQL 大数据 HIVE
电商项目之交易订单明细流水表 SQL 实现(上)|学习笔记
快速学习电商项目之交易订单明细流水表 SQL 实现(上)
902 0
电商项目之交易订单明细流水表 SQL 实现(上)|学习笔记
|
6天前
|
SQL
leetcode-SQL-183. 从不订购的客户
leetcode-SQL-183. 从不订购的客户
18 0
|
6天前
|
SQL
leetcode-SQL-1549. 每件商品的最新订单
leetcode-SQL-1549. 每件商品的最新订单
21 0
|
6天前
|
SQL
leetcode-SQL-1084. 销售分析III
leetcode-SQL-1084. 销售分析III
32 0
|
6天前
|
SQL
leetcode-SQL-1581. 进店却未进行过交易的顾客
leetcode-SQL-1581. 进店却未进行过交易的顾客
32 0
|
6天前
|
SQL
leetcode-SQL-1193. 每月交易 I
leetcode-SQL-1193. 每月交易 I
29 1
|
6天前
|
SQL
leetcode-SQL-1164. 指定日期的产品价格
leetcode-SQL-1164. 指定日期的产品价格
22 0