概述
本文讲解多行函数,多行函数一般用于 数值类型 的列,多用于 统计
在多行记录中查询最大值
使用下面函数:
max(列名)
注意:只返回一行
查询最高工资
select max(sal) from emp
注意: 此时不能查询其他的列,下面查询不正确
select ename,max(sal) from emp
在多行记录中查询最小值
使用下面函数:
min(列名)
查询最少工资
select min(sal) from emp
在多行记录中计算平均值
使用下面函数:
avg(列名)
查询平均工资
select avg(sal) from emp
在多行记录中求和
使用下面函数:
sum()
- 查询工资的总和
select sum(sal) from emp - 查询工资和奖金的总和
上面结果是错的,如果有一个值为null,那么sal+comm后的值是null,需要对null的处理select sum(sal+comm) from emp
函数的嵌套
将一个函数嵌套在另一个函数里
解决上面问题的方法:
select sum(nvl(sal,0)+nvl(comm,0)) from emp;
查询结果的行数
使用下面函数:
count()
返回表中的记录数,没有数据返回0
查询员工总数
select count(*) from emp或者
select count(1) from emp查询工资大于1600(含1600),有多少人
select count(*) from emp where 1600<=sal查询有奖金的人数
select count(comm) from emp当 值为null时,
count()函数 不计数
但一般我们编写sql要明确,不要引起歧义,所以sql如下:select count(*) from emp where comm>0查询有多少个工作种类
select count(distinct job) from emp
单行函数不能和多行函数同时存在
下面sql报错
select length(ename),max(sal) from emp
多行函数可以同时存在
下面sql正确
select max(sal),min(sal),count(*) from emp
练习
部门编号是10的,工资最高的是多少钱
查询全公司平均奖金是多少钱
查询部门编号是20的平均工资
工资大于1600(含1600),有多少人
查询部门编号是30,得到最多奖金的金额