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是用来添加过滤条件以去除...
成年人的世界没有那么多的童话,也没有那么多的逆袭。