码迷,mamicode.com
首页 > 数据库 > 详细

SQL语句 ORDER BY HAVING GROUP BY WHERE 等区别

时间:2020-06-04 00:48:31      阅读:79      评论:0      收藏:0      [点我收藏+]

标签:一个   ref   art   having   blog   detail   出现   条件   执行   

本文参考链接:https://blog.csdn.net/sinat_40692412/article/details/81200133

group by 分组   ,配合聚合函数使用 sum() count()  avg()等等

having  对分组后的结果进行筛选

ORDER BY 最后对结果进行排序

WHERE 一开始对表数据做筛选

FROM 组装不同的数据源

一、

group by字句可以和where条件语句结合在一起使用,当结合在一起时,where在前,group by 在后。即先对select xx from xx的记录集合用where进行筛选,然后再使用group by 对筛选后的结果进行分组,然后再使用having字句对分组后的结果进行筛选。

 

二、需要注意having和where的用法区别:

1、having只能用在group by之后,对分组后的结果进行筛选(即使用having的前提条件是分组)

2、where肯定是在group by之前

3、where后的条件表达式里不允许使用聚合函数,而having可以

 

三、当一个查询语句同时出现where,group by ,having,order by的时候执行顺序和编写顺序是

1、执行where xx 对全表数据做筛选,返回第一个结果集

2、针对第一个结果集使用group by分组,返回第二个结果集

3、针对第二个结果集中的每一组数据执行select xx,有几组就执行几次,返回第三个结果集

4、针对第三个结果集执行having xx进行筛选,返回第四个结果集

5、针对第四个结果集进行排序ORDER BY

 

SQL语句 ORDER BY HAVING GROUP BY WHERE 等区别

标签:一个   ref   art   having   blog   detail   出现   条件   执行   

原文地址:https://www.cnblogs.com/HuiT/p/13040849.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!