无尽SQL之 订单最多的客户

在表 orders 中找到订单数最多客户对应的 customer_number 。

数据保证订单数最多的顾客恰好只有一位。

表 orders 定义如下:
Column Type
order_number (PK) int
customer_number int
order_date date
required_date date
shipped_date date
status char(15)
comment char(200)
样例输入
order_number customer_number order_date required_date shipped_date status comment
1 1 2017-04-09 2017-04-13 2017-04-12 Closed
2 2 2017-04-15 2017-04-20 2017-04-18 Closed
3 3 2017-04-16 2017-04-25 2017-04-20 Closed
4 3 2017-04-18 2017-04-28 2017-04-25 Closed
样例输出
customer_number
3

思路:

不考虑并列:
直接按照用户分组, count(1)订单, desc排序, limit 1 输出
考虑并列:
先查询到最多的订单数量, 在通过having count(*)=最多的订单数量

题解:

不考虑并列:
# Write your MySQL query statement below
select customer_number from orders
group by customer_number
order by count(1) desc
limit 1
考虑到并列的情况:
select customer_number from orders group by customer_number 
having count(*)=(
select count(*) as c from orders
group by customer_number order by c desc limit 1)
发布了188 篇原创文章 · 获赞 323 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_33709508/article/details/104098008