提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
相信对于很多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