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

Posted HuiT

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL语句 ORDER BY HAVING GROUP BY WHERE 等区别相关的知识,希望对你有一定的参考价值。

本文参考链接: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 等区别的主要内容,如果未能解决你的问题,请参考以下文章

SQL语句中,如果有group by 和order by两个语句,是先分组还是先排序?

SQL语句中,如果有group by 和order by两个语句,是先分组还是先排序?

SQL语句之order by group byhavingwhere

sql语句select group by order by where一般先后顺序

sql语句select group by order by where一般先后顺序

sql语句select group by order by where一般先后顺序