SQL语句查询各部门中工资比本部门平均工资高的的员工的员工号,姓名和工资
时间: 2023-05-22 12:02:36 浏览: 733
请看以下SQL语句:
SELECT emp_no, first_name, last_name, salary
FROM employees e
WHERE salary > (SELECT AVG(salary) FROM employees WHERE dept_no = e.dept_no)
这条语句将查询每个部门中工资高于本部门平均工资的员工的员工号、姓名和工资。
相关问题
18.查询各部门中工资比本部门平均工资高的员工的员工号, 姓名和工资(相关子查询)
好的,针对您的问题,可以使用以下 SQL 语句来实现:
```
SELECT e.empno, e.ename, e.sal
FROM emp e
WHERE e.sal > (
SELECT AVG(e2.sal)
FROM emp e2
WHERE e2.deptno = e.deptno
)
```
以上 SQL 语句中,`emp` 表是员工表,包含员工号、姓名、工资、部门号等信息。子查询语句 `SELECT AVG(e2.sal) FROM emp e2 WHERE e2.deptno = e.deptno` 用于计算当前员工所在部门的平均工资,子查询中 `e` 和外部查询中的 `e` 是同一个表的不同别名。
外部查询的 WHERE 子句中使用了子查询,判断员工的工资是否高于本部门的平均工资,如果是,则返回该员工的员工号、姓名和工资。
查询各部门中工资比本部门平均工资高的员工的员工编号、名字和工资。
以下是一种可能的 SQL 查询方式:
```sql
SELECT e.employee_id, e.employee_name, e.salary
FROM employee e
WHERE e.salary > (SELECT AVG(e2.salary) FROM employee e2 WHERE e2.department_id = e.department_id)
```
这个查询将从 `employee` 表中选择员工编号、员工姓名和工资,这些员工的工资高于他们所在部门的平均工资。内部查询 `(SELECT AVG(e2.salary) FROM employee e2 WHERE e2.department_id = e.department_id)` 用于计算每个员工所在部门的平均工资。然后,外部查询使用 `WHERE` 子句来筛选出工资高于部门平均工资的员工。