emp 表,有14条记录,其中 deptno 有重复字段,comm 字段有的为 null:
emp:
ename | sal | deptno | comm |
---|---|---|---|
AA | 5000 | 1 | 100 |
BB | 4000 | 1 | null |
CC | 7000 | 2 | 50 |
......
函数的分类
- 单行函数:每一行返回一个值。
lower() 是单行函数:
select lower(ename) from emp; -- 返回 14 行(表中有14条数据)
- 多行函数:多行返回一个值。聚合函数是多行函数。
max() 是多行函数:
select max(sal) from emp; -- 返回一行
聚合函数的分类
- max() 最大值
- min() 最小值
- avg() 平均值
- count() 求个数
- sum() 返回某列值之和
select count(*) from emp; -- 返回 emp 表中所有记录的个数 14
select count(deptno) from emp; -- 返回值 14,说明 deptno 重复记录也被返回。
select count(distinct deptno) from emp; -- 返回值 3,统计 deptno 不重复记录。
select count(comm) from emp; -- 返回值4,不统计 comm 为 null 记录。
注意
1、多行函数和单行函数不能写在一起。
select max(sal),min(sal),count(*) from emp; -- ok
- 多行函数可以写在一起
select max(sal),lower(ename) from emp; -- error
- 多行函数 max() 和单行函数 lower() 不能写在一起,逻辑错误。
2、max() 返回指定列中的最大值。如果是该列文本数据,max() 返回该列排序后的最后一行。
3、min() 返回指定列的最小值。如果该列是文本数据,min() 则返回该列排序后的第一行。
网友评论