题目一:订单最多的客户
题目要求:
查找下了 最多订单 的客户的
customer_number
。测试用例生成后, 恰好有一个客户 比任何其他客户下了更多的订单。
表结构:
运行结果示例:
思路:
本题中,包含限定条件:恰好有一个客户比任何其他客户下了更多的订单。因此我们只需要按照customer_number字段分组排序,再使用limit子句找到最大的那个即可。
运行代码示例:
select customer_number
from Orders
group by customer_number
order by count(order_number) desc
limit 1
进阶: 如果有多位顾客订单数并列最多,如何找到所有数据?
在原本的题目中,订单最多的客户有且仅有一个,但是如果存在订单数并列的情况,该如何使用limit子句限定查询范围呢?这种情况我们只需要使用子查询先查询出最大的订单数,再去查询订单数等于最大订单数的客户。
select customer_number from Orders group by customer_number having count(order_number) = ( select count(order_number) from Orders group by customer_number order by count(order_number) desc limit