-
过滤分组
1、having 子句的使用
·求平均工资大于2000的员工
select deptno,avg(sal) from emp group by deptno having avg(sal)>2000
2、WHERE 与HAVING 的区别
·不能在where 子句中使用组函数
·可以在having 子句中使用组函数
3、where 和having 可以通用的情况
示例:查询10号部门的平均工资
select deptno,avg(sal) from emp group by deptno having deptno=10;
select deptno,avg(sal) from emp where deptno=10 group by deptno;
having先分组,后过滤
where 先过滤,后分组
查看全部 -
group by 子句的使用
·group by 子句将表的数据分成若干份
示例:求每个部门的平均工资,要求显示:部门号,部门的平均工资
select deptno,avg(sal) from emp group by deptno;
·在SELECT 列表中所有未包含在组函数中的列都应该包含在GROUP BY 子句中
·包含在GROUP BY 子句中的列不必包含在SELECT 列表中
select a,b,c,组函数(x) from table group by a,b,c;
select avg(sal) from emp group by deptno;
select deptno,job,sum(sal) from emp group by deptno,job;
查看全部 -
使用分组函数3
1、分组函数与空值
·分组函数会自动忽略空值
·举例1:统计员工的平均工资
select sum(sal)/count(*) 一,sum(sal)/count(sal) 二,avg(sal) 三 from emp;
·统计员工的平均奖金
select sum(comm)/count(*) 一, sum(comm)/count(comm) 二,avg(comm) 三 from emp;
2、在分组函数中使用NVL函数
*注意:NVL函数使分组函数无法忽略空值
select count(*),count(nvl(comm,0)) from emp;
查看全部 -
使用分组函数2
WM_CONCAT 行转列
select deptno,wm_concat(ename) from emp group by deptno;
查看全部 -
使用分组函数1
1、AVG(平均值)和SUM(合计)函数
·求出员工的平均工资和工资的总额
select avg(sal),sum(sal) from emp;
2、MIN(最小值)和MAX(最大值)函数
·求出员工工资的最大值和最小值
select max(sal),min(sal) from emp;
3、COUNT(计数)函数
·求出员工的总人数
select count(*) from emp;
select count(empno) from emp;
4、DISTINCT 关键字(用于去掉重复的记录)
·求出部门数
select count(distinct deptno) from emp;
查看全部 -
分组函数的概念
1、什么是分组函数
·分组函数作用于一组数据,并对一组数据返回一个值。
2、常用的分组函数
·AVG 平均值
·SUM 求和
·MIN 最小值
·MAX 最大值
·COUNT 求个数
·WM_CONCAT 行转列
查看全部 -
课程目标
1、分组函数的概念
2、分组函数的使用
3、使用GROUP BY 子句数据分组
4、使用HAVING 子句过滤分组结果集
5、在分组查询中使用order by 子句
6、group by 语句的增强
7、SQL*Plus的报表功能
查看全部 -
having和from的区别 having后可以跟组函数,from后面不可以
单行子查询 多行子查询??
查看全部 -
可以使用子查询的位置 where select having from
不可以 group by
查看全部 -
自连接的核心,通过别名把一张表当做多张表
查看全部 -
左外连接在右边条件后 加 (+)
右外连接在左边条件后 加 (+) 反着
查看全部 -
存疑
group by 后面跟 rollup(a,b)函数 多用于报表
查看全部 -
order by 可以根据 列名、别名、select后的序号、表达式排列
默认按照降序排列 desc升序
查看全部 -
select列表中,不在组函数中的字段,必须在group by子句中
查看全部 -
分组函数自动忽略结果中的空值
要使空值不被忽略,使用nvl函数 nul(列名,返回值)(列为空就返回设置的返回值,不为空直接返回列中的值)
查看全部
举报