+
| order_number | customer_number |
+
|
1
|
1
|
|
2
|
2
|
|
3
|
3
|
|
4
|
3
|
+
+
| customer_number |
+
|
3
|
+
customer_number 为
'3'
的顾客有两个订单,比顾客
'1'
或者
'2'
都要多,因为他们只有一个订单。
所以结果是该顾客的 customer_number ,也就是
3
。
1.聚合函数
2.建议用时10~25min
三、问题分析
对于这一题,题目要求我们求出订单最多的客户,做题之前要注意题目只有一个订单最多的用户,而不是多个客户数据。
我们先使用聚合函数的结果如下:
根据customer_number
进行聚合,对出现的订单数量进行计数处理,出现最多的应该是customer_number
为第3个,我们只需要将这一行数据排序成第一行,这样选择的话就比较好操作。
排序后的结果如下:
在 MySQL
中, LIMIT
语句可以被用来限制 SELECT
语句的返回行数。所以我们使用limit 1
只要返回第一行的结果,这就是题目要求我们求出的订单最多的客户号。
四、编码实现
select customer_number
from Orders
group by customer_number
order by count(customer_number) desc
limit 1
五、测试结果