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

SQL复杂查询(三)

程序员文章站 2024-03-04 20:40:06
...

11.列出公司各个工资等级雇员的数量、平均工资
确定所需要的数据表:
emp表:雇员的平均工资
salgrade表:工资等级

确定已知的关联字段:
emp.sal BETWEEN salgrade.losal AND salgrade.hisal

SELECT s.grade,COUNT(e.empno),AVG(e.sal)
FROM emp e ,salgrade s 
WHERE e.sal BETWEEN s.losal AND s.hisal
GROUP BY s.grade;

SQL复杂查询(三)

12.列出薪金高于在部门30工作的所有员工的薪金的员工名称和薪金、部门名称
确定所需要的数据表:
emp表:找出所有在30部门工作的雇员的工资
emp表:显示雇员姓名
dept表:部门名称

确定已知的关联字段:
emp.deptno=dept.deptno

12.1 找出在部门30工作的所有员工名称和薪金

SELECT e.ename,e.sal FROM emp e WHERE e.deptno=30;

SQL复杂查询(三)

12.2 找出薪金高于部门30的员工信息,部门信息,引入emp表,查询姓名和薪金

SELECT e.ename,e.sal,d.dname FROM emp e ,dept d 
         WHERE e.sal>ALL(SELECT sal FROM emp WHERE deptno=30) AND e.deptno=d.deptno;

SQL复杂查询(三)

13.列出在每个部门工作的员工数量、平均工资和平均服务期限
确定所需要的数据表:
emp表:员工数量,平均工资,平均服务期限
dept表:部门信息

确定已知的关联字段:
emp.deptno=dept.deptno

SELECT d.deptno dno,COUNT(e.empno) count,NVL(AVG(sal),0) sal,NVL(AVG(MONTHS_BETWEEN(SYSDATE,e.hiredate)),0)/12 years
FROM emp e ,dept d
WHERE e.deptno(+)=d.deptno
GROUP BY d.deptno;

SQL复杂查询(三)

14.列出所有员工的姓名、部门名称和工资
确定所需要的数据表:
emp表:员工姓名、工资
dept表:部门名称

确定已知的关联字段:
emp.deptno=dept.deptno

SELECT e.ename,e.sal,d.dname FROM emp e ,dept d WHERE e.deptno=d.deptno;

SQL复杂查询(三)

15.列出所有部门的详细信息和部门人数
确定所需要的数据表:
emp表:部门人数
dept表:部门的详细信息

确定已知的关联字段:
emp.deptno=dept.deptno

SELECT d.deptno,d.dname,d.loc ,COUNT(e.empno),NVL(AVG(e.sal),0)
FROM emp e ,dept d
WHERE e.deptno(+)=d.deptno
 GROUP BY d.deptno,d.dname,d.loc;

SQL复杂查询(三)

相关标签: sql 复杂查询