Sql语法注意事项

#分组 group by

作用:group by 子句可以将结果集按照指定的字段值一样的记录进行分组,配合聚合函数

可以进行组内统计的工作。

注意1当在select中时,查询的内容中如果包含聚合函数,则聚合函数以外的字段需

要用group by进行分组。

eg: 查询每个部门的平均工资?

select avg(sal),deptno

from emp

group by dentno;

eg:查看每个部门的平均工资,前提是该部门的平均工资高于2000;

select avg(sal),deptno

from emp

where avg(sal)>2000

group by deptno;

注意2:上述SQL会报错,where中不能用聚合函数作为过滤条件。    原因是因为过滤时

机不对, where是在查询表中数据的时候逐行进行过滤,将满足条件的记录形成结果集。  

使用聚合函数的结果进行过滤的前提是分组统计,分组是建立在结果集上的,而where是用来

形成结果集时的过滤。所以用聚合函数过滤应当是在where之后进行的

having子句,having子句可以用聚合函数作为过滤条件。having必须跟在group by子句后面(不

定义group by不能单独定义having)。having是用来添加过滤条件以去除...

猜你喜欢

转载自www.cnblogs.com/shijinglu2018/p/10684387.html