Mysql中分组后求分组中最大,最小数量的解决思路

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

相信对于很多sql语句小白来说,求最大,最小特定字段时,第一个想到的时max,min函数,但是有时候特定的情况下并不好用,这里小编提供了一种补充,用分页做出排序效果

提示:以下是本篇文章正文内容,下面案例可供参考

一、话不多说,先上表

表: Orders

±----------------±---------+
| Column Name | Type |
±----------------±---------+
| order_number | int |
| customer_number | int |
±----------------±---------+
Order_number是该表的主键。
此表包含关于订单ID和客户ID的信息。
输入:
Orders 表:
±-------------±----------------+
| 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.答案解析

代码如下(示例):

select customer_number from Orders group by customer_number order by count(customer_number) desc limit 1

3.解读答案

—解题思路:
分组用户后count一下最后通过分页查出最大订单用户,mysql中不能max(count)这样的语句,会报错,所有先用排序,然后分页求出最大值。当然这样写法有些时候还可以求最大前三或者最小的前几位,就当是对max函数的扩张吧,哈哈。

总结

好了,最后提示大家,在写sql语句的千万要注意执行的循序哦,这边顺便给大家总结了一下sql执行顺序 ,希望可以能帮到大家,欢迎大家评论区留言!
from
on
join
where
group by
avg,sum…
having
select
distinct
order by
limit

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值