表的复杂查询
在实际应用中,常常需要执行复杂的数据统计,经常需要显示多张表的数据现在我们来学习比较复杂的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 “部门编号”;