我 有 一 个 SQL 数据 库 , 其中 有 两 个 表 , 分别 称为 DEPT 和 EMP
create table dept(
deptno number(2,0),
dname varchar2(14),
loc varchar2(13),
constraint pk_dept primary key (deptno)
);
create table emp(
empno number(4,0),
ename varchar2(10),
job varchar2(9),
mgr number(4,0),
hiredate date,
sal number(7,2),
comm number(7,2),
deptno number(2,0),
constraint pk_emp primary key (empno),
constraint fk_deptno foreign key (deptno) references dept (deptno)
);
中 的 每 一 个
需要 做 的 事情 如下 :
- 部门 位置
- 公司 平均 工资
- 部门 平均 工资
- 与 部门 平均 工资 的 偏差
- 偏离 公司 平均 工资
- EMP 编号
- 职务
- 薪资
这 是 我 目前 准备 好 的
SELECT ROUND(AVG(sal) over(),2) AS COMPANY_AVERAGE_SALARY,sal - ROUND(AVG(sal) over(),2) AS DEVIATION_FROM_COMPANY_AVERAGE_SALARY, empno AS EMPNO, job AS JOB, sal AS SALARY from emp;
格式
我 也 有 :
SELECT dept.loc AS DEPARTMENT_LOCATION FROM emp,dept WHERE emp.deptno=Dept.deptno;
格式
我 的 主要 问题 是 , 我 似乎 无法 在 同一 输出 中 显示 不同 的 选择 行 , 不 知道 如何 在 每行 上 显示 部门 平均 工资 , 以及 如何 执行 DEVIATION _ FROM _ DEPARTMENT _ AVERAGE _ SALARY 。 非常 感谢 您 的 帮助 。
1条答案
按热度按时间vohkndzv1#
您 已经 非常 接近 示例 查询 了 。 要 查找 偏差 , 只需 查找 当前 员工 薪金 与 公司/部门 平均 薪金 之间 的 差异 , 如下 所 示 :
中 的 每 一 个