--通用函数 select ename,job,sal 涨前工资, decode(job,'PRESIDENT',sal+1000, |
多行函数
和单行函数相比,oracle提供了丰富的基于组的,多行的函数。这些函数能在select或select的having子句中使用,当用于select子串时常常都和GROUP BY一起使用。多行函数分为接收多个输入,返回一个输出。
组函数:
--求员工的工资总和 select sum(sal) from emp; --求个数 select count(*) from emp; --求平均工资 select sum(sal)/count(*) 方式一, avg(sal) 方式二 from emp; --关于空值:组函数会自动滤空 select count(*), count(comm) from emp; --max和min:求最高工资和最低工资 select max(sal) 最高工资,min(sal) 最低工资 from emp; --分组数据:求各个部门的平均工资 select deptno,avg(sal) from emp group by deptno; --group by作用于多列: 按部门,不同的工种,统计平均工资 --group by作用于多列:先按照第一列分组;如果相同,再按照第二列分组 select deptno,job,avg(sal) from emp group by deptno,job; --:求部门的平均工资大于2000的部门 select deptno,avg(sal) from emp group by deptno having avg(sal)>2000; --group by的增强 select deptno,job,sum(sal) from emp group by rollup(deptno,job); --不同的deptno空两行/取消设置 break on deptno skip 2/break on null |