多行函数也叫组函数,作用与一组数据,并且对一组数据返回一个值.如AVG,COUNT,MAX,MIN,SUM等,操作的是一组数据,返回的是一个结果.
select sum(sal) from emp; #对指定列的各行求和 select count(*) from emp; #统计指定列的非空行 select avg(sal) from emp; #求指定列的平均值 select sum(sal)/count(*) from emp; # 这句也是求平均值,但是有NULL值的时候情况可能不同 #比如奖金,应该使用avg(comm)或sum(comm)/count(comm)
因为组函数都有滤空功能所以count(comm)只会选择有值的行
count(distinct job)
:查询工种
select 列1,列二..,组函数().. group by 列一,列二...
注意: 在SELECT 列表中所有没有包含在组函数中的列,都必须在group by的后面出现。否则会报错.
逻辑上很容易理解:根据选择的列来进行分组,才符合我们的目的
select deptno,job,avg(sal) from emp group by deptno,job having avg(sal)>2000