【一】数据分组(group by ):
1.group by 和where
select 列a,聚合函数(聚合函数标准) from 标明 where 过滤条件 group by 列a
2.group by 和having
select 列a,聚合函数(聚合函数标准) from 标明 group by 列a having 过滤条件 ;
3.group by 和order by
select 列a,聚合函数(聚合函数标准) from 标明 group by 列a order by 条件;
【二】运用having字句对分组后的成果进行挑选,语法和where差不多:having 条件表达式
需求留意having和where的用法差异:
1.having只能用在group by之后,对分组后的成果进行挑选(即运用having的前提条件是分组)。
2.where肯定在group by 之前,即也在having之前。
3.where后的条件表达式里不允许运用聚合函数,而having能够。
4.having后只能跟group by后边字段条件 或许 非group by字段的聚合函数条件(按组查询);
【三】当一个查询句子一起呈现了where,group by,having,order by的时分,履行次序:
Group By 和 Having, Where ,Order by这些关键字是依照如下次序进行履行的:Where, Group By, Having, Order by。
SELECT的语法次序便是起履行次序
FROM
WHERE (先过滤单表/视图/成果集,再JOIN)
GROUP BY
HAVING (WHERE过滤的是行,HAVING过滤的是组,所以在GROUP之后)
ORDER BY