聚合函数,可以使用的地方:select,from,having
count:统计数量
注意:1、count(*)统计所有项数,不忽略空值;2、count(字段) 忽略空值。
max,最大值
min,最小值
sum,求和
avg,平均值
group by子句指定要分组的列,可以指定多个分组的列。
having可以对分组后的数据进行筛选,和where语句差不多。
----使用了group by后,select、having后只能加group by 后的字段以及分组函数。having后使用子查询的返回值注意是group by 后的字段以及分组函数
注意:
1、为什么where后面不能跟聚合函数,因为分组函数在分组之后进行计算的。where后面不能跟分组函数,如果想要使用,可以使用子查询,返回值是聚合函数结果就行。
2、分组之后,查询的字段为聚合函数和分组字段,其他字段不可以放在上面。
3、多表连接中,聚合函数是可以计算连接的那张表的。
例子:
显示经理号码和经理姓名,这个经理所管理员工的最低工资,没有经理的KING也要显示,不包括最低工资小于3000的,按最低工资由高到低排序。
select manager.empno,manager.ename,min(worker.sal) min_sal
from emp worker
left join emp manager
on worker.mgr=manager.empno
group by manager.empno,manager.ename
having min_sal>=3000
order by min_sal desc