欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

Oracle复杂查询入门教程

程序员文章站 2024-02-06 15:18:16
...

select comm from emp;--查询工资最高的员工select ename,job,sal from emp where sal = (select max(sal) from emp);select ena

select comm from emp;
--查询工资最高的员工
select ename,job,sal from emp where sal = (select max(sal) from emp);
select ename,job,sal*13+nvl(comm,0)*13 s from emp order by s desc;
--查询平均工资,总工资
select avg(nvl(sal,0)),sum(nvl(sal,0)) from emp;
--查询奖金
select avg(comm),sum(comm) from emp;
--group by 和having
select avg(sal),sum(sal),deptno from emp group by deptno;
select count(comm) from emp ;
select count(ename) from emp ;
----显示每个部门的每种岗位的平均工资和最高工资
select avg(sal),sum(sal),deptno,job from emp group by deptno, job
----显示部门平均工资低于2000的部门和他的平均工资
--思路1:查询出每个部门的平均工资
select avg(sal),deptno from emp GROUP by deptno;
--思路2:挑出低于2000的部门
select avg(sal),deptno from emp GROUP by deptno HAVING AVG(sal)----1,分组函数(avg(),sum().....)只能出现在选择列表,having,order by 子句中
----2,如果在select语句中同时包含有group by ,having,order by 那么它们的顺序是group by ,having,,order by
----3,在选择列中如果有列,表达式,和分组函数,那么这些列和表达式必须有一个出现在group by 子句中

Oracle复杂查询入门教程