where , group by, having, order by 用法

where, having, 用法区别:

  1. having只能用在group by之后,对分组后的结果进行筛选(即使用having的前提条件是分组)。
  2. where肯定在group by 之前,即也在having之前。
  3. where后的条件表达式里不允许使用聚合函数(count(),sum(),avg(),max(),min()),而having可以。

where , group by, having, order by 执行顺序:

  1. 执行where xx对全表数据做筛选,返回第1个结果集。
  2. 针对第1个结果集使用group by分组,返回第2个结果集
  3. 针对第2个结果集中的每1组数据执行select xx,有几组就执行几次,返回第3个结果集。
  4. 针对第3个结集执行having xx进行筛选,返回第4个结果集。
  5. 针对第4个结果集排序。

本文来自 superhosts 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/superhosts/article/details/39298529?utm_source=copy

猜你喜欢

转载自blog.csdn.net/yzcwansui/article/details/82826703