该题目来源于力扣:
题目要求:
表: Orders
+-----------------+----------+ | Column Name | Type | +-----------------+----------+ | order_number | int | | customer_number | int | +-----------------+----------+ 在 SQL 中,Order_number是该表的主键。 此表包含关于订单ID和客户ID的信息。
查找下了 最多订单 的客户的 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 。
思路解释:
我们可能会想到:
max(count(distinct customer_number))
可这是错误的,语法错误。如果再MySQL中想查询最大或最小值,可以利用先排序再展示要求的数据即可。将数据按照customer_number列进行分组,然后统计分组后customer_number列的频数,升序排序,最后再limit的分页参数里输入你要查询的前几个数据
代码实现:
# Write your MySQL query statement below
select customer_number
from Orders
group by customer_number
order by count(customer_number) DESC
limit 1;
本站资源均来自互联网,仅供研究学习,禁止违法使用和商用,产生法律纠纷本站概不负责!如果侵犯了您的权益请与我们联系!
转载请注明出处: 免费源码网-免费的源码资源网站 » [每日一练]关于MySQL利用排序和分页参数查询最大值
发表评论 取消回复