LETCODE_000586_订单最多的客户

这是一个SQL查询问题,目标是找出在Orders表中下单最多的客户。通过GROUPBYcustomer_number并COUNT(*)统计每个客户的订单数,然后按数量降序排序,LIMIT1即可获取下单最多的客户。如果有多名客户订单数相同且最多,原查询只会返回一个,需要修改查询以包含所有这些客户。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

-- 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 。
-- 
--  
-- 
-- 进阶: 如果有多位顾客订单数并列最多,你能找到他们所有的 customer_number 吗?
-- 
-- 来源:力扣(LeetCode)
-- 链接:https://leetcode.cn/problems/customer-placing-the-largest-number-of-orders
-- 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。


-- DROP TABLE IF EXISTS Orders;
-- CREATE TABLE Orders (
-- 	order_number INT COMMENT '订单号',
-- 	customer_number INT COMMENT '客户编号',
-- 	PRIMARY KEY (`order_number`)
-- )
-- ENGINE=InnoDB
-- DEFAULT CHARSET=utf8mb4
-- COLLATE=utf8mb4_unicode_ci
-- COMMENT='订单表'
-- ;
-- INSERT INTO Orders
-- (order_number, customer_number)
-- VALUES
-- (1, 1)
-- ,(2, 2)
-- ,(3, 3)
-- ,(4, 3)
-- ;
SELECT 
	customer_number
FROM Orders
GROUP BY customer_number 
ORDER BY COUNT(*) DESC 
LIMIT 1






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值