表的复杂查询
在实际应用中,常常需要执行复杂的数据统计,经常需要显示多张表的数据现在我们来学习比较复杂的select的语句。我们将继续使用scott用户下emp表作为示例。
聚合函数
MAX函数:
对一列取最大值
MIN函数:
对一列取最小值
AVG函数:
对一列取平均值
SUM函数:
对一列求和
COUNT 函数:
统计该列有多少行
如果列里面有分组函数,那其他列必须是分组函数
显示所有员工中的最高工资和最低工资
select max(sal),min(sal) from emp;

显示所有员工的平均工资和工资总和
select avg(sal) “平均工资”,sum(sal) “工资总和” from emp;

计算有多少员工
select count(ename) “员工总数” from emp;

显示工资最高的员工名字和工作岗位
select ename,job from emp where sal = (select max(sal) from emp);

显示工资高于平均工资的员工信息
select * from emp where sal > (select avg(sal) from emp);

group by 和 having 子句
group by 用于对查询结果分组统计,
having 子句用于限制分组显示结果。
显示每个部门的平局工资和最高工资并按部门分组 按部门编号升序排列
select * from (select avg(sal) as “平均工资”,max(sal) as “最高工资”,deptno as “部门编号” from emp group by deptno) order by “部门编号”;

显示每个部门的平局工资和最高工资并按部门和工作岗位分组 按部门编号升序排列
select * from (select avg(sal) as “平均工资”,max(sal) as “最高工资”,deptno as “部门编号”,job as “工作岗位” from emp group by deptno,job) order by “部门编号”;

本文详细介绍了如何在Oracle数据库中进行复杂的PL/SQL查询,包括聚合函数的应用,如显示最高、最低工资,平均工资等;使用group by和having子句进行数据分组;多表查询,如笛卡尔集、自连接和子查询;以及如何通过union、union all、intersect和minus进行结果集合并。通过对scott用户下emp表的实例演示,深入理解这些高级查询技巧。

87

被折叠的 条评论
为什么被折叠?



