查询高于自己部门平均工资的员工信息Oracle语句
时间: 2024-05-11 21:19:09 浏览: 226
以下是查询高于自己部门平均工资的员工信息的 Oracle SQL 语句:
```
SELECT e.employee_id, e.first_name, e.last_name, e.salary
FROM employees e
WHERE e.salary > (SELECT AVG(salary) FROM employees WHERE department_id = e.department_id)
ORDER BY e.salary DESC;
```
该语句使用子查询来获取每个员工所在部门的平均工资,并将其与该员工的工资进行比较,以找出高于平均工资的员工。最后,结果按照工资的降序排序。
相关问题
oracle语句练习题
Oracle语句练习题通常涉及数据库操作的基本语法、查询构造、数据表管理以及SQL功能的运用。例如:
1. 查询基本数据:如何从一张名为"Employees"的表中选择所有列并显示前10行数据?
```sql
SELECT * FROM Employees LIMIT 10;
```
2. 条件筛选:如何查询工资高于5000的所有员工信息?
```sql
SELECT * FROM Employees WHERE Salary > 5000;
```
3. 连接查询:如何获取两个表(如Employees和Departments)关联的数据,比如员工和他们所在的部门名?
```sql
SELECT E.*, D.DepartmentName
FROM Employees E
JOIN Departments D ON E.DepartmentID = D.DepartmentID;
```
4. 分组统计:如何计算每个部门的平均工资?
```sql
SELECT DepartmentID, AVG(Salary) as AverageSalary
FROM Employees
GROUP BY DepartmentID;
```
Oracle数据库查询语句示例
在Oracle数据库中,查询语句通常用来获取、更新或删除数据。以下是一些基本的查询语句示例:
1. **查询数据**:
- 获取所有部门名称和员工姓名:
```sql
SELECT Department.Name, Employee.FirstName, Employee.LastName
FROM Department
JOIN Employee ON Department.Department_ID = Employee.Department_ID;
```
2. **筛选数据**:
- 查找某个特定条件下的员工,例如薪资高于平均水平的员工:
```sql
SELECT Employee_ID, FirstName, LastName
FROM Employee
WHERE Salary > (SELECT AVG(Salary) FROM Employee);
```
3. **分组和聚合**:
- 计算每个部门的平均薪资:
```sql
SELECT Department.Name, AVG(Employee.Salary)
FROM Employee
GROUP BY Department.Name;
```
4. **排序结果**:
- 按照薪水降序显示员工列表:
```sql
SELECT *
FROM Employee
ORDER BY Salary DESC;
```
5. **更新数据**:
- 将所有工资小于10000的员工薪资提高10%:
```sql
UPDATE Employee
SET Salary = Salary * 1.1
WHERE Salary < 10000;
```
6. **删除数据**:
- 删除某条特定的记录,如ID为1的员工:
```sql
DELETE FROM Employee
WHERE Employee_ID = 1;
```
在实际使用时,记得结合业务场景和安全措施来编写和执行查询。
阅读全文
相关推荐













