count |
取得记录数 |
sum |
求和 |
Avg |
取平均 |
Max |
取最大的数 |
min |
取最小的数 |
● 取得所有的员工数
select count(*) from emp;
Count(*)表示取得所有记录,忽略null,为null值也会取得。
当一行数据所有字段全部为空的场合,count方法是否有效 !
count方法有效!
● 取得津贴不为null员工数
select count(comm) from emp;
采用count(字段名称),不会取得为null的纪录。
● 取得工作岗位的个数
select count(distinct job) from emp;
Distinct可以去除重复的纪录。
Sum可以取得某一个列的和,如果是null会略。
● 取得薪水的合计
select sum(sal) from emp;
● 取得薪水的合计(sal+comm)
select sum(sal+comm) from emp;
从以上结果来看,不正确,原因在于comm字段有null值,所以无法计算,sum会忽略掉,正确的做法是将comm字段转换成0。
select sum(sal+nvl(comm, 0)) from emp;
取得某一列的平均值。
● 取得平均薪水
select avg(sal) from emp;
取得某个一列的最大值。
● 取得最高薪水
select max(sal) from emp;
● 取得最晚入职得员工
select max(to_char(hiredate, 'yyyy-mm-dd')) from emp;
取得某个一列的最小值。
● 取得最低薪水
select min(sal) from emp;
● 取得最早入职得员工
select min(hiredate) from emp;
可以将这些聚合函数都放到select中一起使用。
select count(*), sum(sal), avg(sal), max(sal), min(sal) from emp;