【SQL每日一练】day3:leetcode高频习题练习

题目一:订单最多的客户

题目要求:

查找下了 最多订单 的客户的 customer_number 。

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

586. 订单最多的客户 - 力扣(LeetCode)

表结构:

 运行结果示例:

思路:

        本题中,包含限定条件:恰好有一个客户比任何其他客户下了更多的订单。因此我们只需要按照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 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值