标签:一个 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