函数:甲骨文服务器先事写好的一段具有一定功能的程序片段,内置于oracle服务器,供用户调用,
单行函数:输入一个参数,输出一个结果,例如:上(“baidu.com”)→baidu.com
多行函数:输入多个参数,或者是内部扫描多次,输出一个结果,例如:count (*)→14
统计emp表中员工总人数
select count(*),得到电磁脉冲;
*号适用于表字段较少的情况下,如果字段较多,扫描时间,多效率低、项目中提倡使用某一个非零唯一的字段,通常是主键,
统计公司有多少个不重复的部门
select 计数(distinct deptno),得到电磁脉冲;
统计有佣金的员工人数
select 计数(通讯),得到电磁脉冲;
注意:今天讲的这些多个行函数,不统计零值
员工总工资,平均工资,四舍五入,保留小数点后0位
select 和(sal),“总工资”,圆(avg (sal), 0),“平均工资” 得到电磁脉冲;
查询员工表中最高工资,最低工资
select 马克斯(sal),“最高工资”,min (sal),“最低工资” 得到电磁脉冲;
入职最早,入职最晚员工
select 马克斯(hiredate),“最晚入职时间”,min (hiredate),“最早入职时间” 得到电磁脉冲;
按部门求出该部门平均工资,且平均工资取整数,采用截断
select deptno “部门编号”,trunc (avg (sal), 0),“部门平均工资” 得到电磁脉冲 group by  deptno;
(继续)查询部门平均工资大于2000元的部门
select deptno “部门编号”,trunc (avg (sal), 0),“部门平均工资” 得到电磁脉冲 group by  deptno having trunc (avg (sal), 0),祝辞,2000;
(继续)按部门平均工资降序排列
select deptno “部门编号”,trunc (avg (sal), 0),“部门平均工资” 得到电磁脉冲 group by  deptno having trunc (avg (sal), 0),在2000年 order by 2, desc;
除10号部门外,查询部门平均工资大于2000元的部门,方式一【deptno<在10】
select deptno, avg (sal) 得到电磁脉冲 group by  deptno having deptno<在10;
除10号部门外,查询部门平均工资大于2000元的部门,方式二【deptno<在10】【推荐】
select deptno, avg (sal) 得到电磁脉冲 where deptno<在10 group by  deptno;
显示部门平均工资的最大值
select 马克斯(avg (sal)),“部门平均工资的最大值” 得到电磁脉冲 group by  deptno;
<强>思考强>:显示部门平均工资的最大值和该部门编的号吗?
选择马克斯(avg (sal))“部门平均工资的最大值”,deptno”部门编号”从emp
group by deptno;
错误
group by子句的细节:
1)在select子句中出现的非多行函数的所有列,【必须】出现在group by子句中
2)在group by子句中出现的所有列,【可出现,可不现】在select子句中
,和拥有的区别: