Oracle查询员工数大于3的部门最高、最低、平均工资
时间: 2023-08-31 19:24:07 浏览: 187
ORACLE复杂查询/面试练习一.doc
### 回答1:
下面是在 Oracle 中查询员工数大于 3 的部门最高、最低、平均工资的语句示例:
```
SELECT department, MAX(salary) as max_salary, MIN(salary) as min_salary, AVG(salary) as avg_salary
FROM employees
WHERE (SELECT COUNT(*) FROM employees e WHERE e.department = employees.department) > 3
GROUP BY department
```
这个语句会查询员工数大于 3 的部门的最高、最低、平均工资。
注意:在实际使用中,表名和列名可能需要根据具体情况进行修改。
### 回答2:
首先,我们可以使用以下SQL语句查询员工数大于3的部门的最高、最低和平均工资:
```sql
SELECT
DEPARTMENT_ID,
MAX(SALARY) as MAX_SALARY,
MIN(SALARY) as MIN_SALARY,
AVG(SALARY) as AVG_SALARY
FROM
EMPLOYEES
GROUP BY
DEPARTMENT_ID
HAVING
COUNT(*) > 3;
```
这个查询语句首先在EMPLOYEES表中按照部门(DEPARTMENT_ID)分组,然后使用HAVING子句筛选出员工数大于3的部门。接下来,使用聚合函数MAX、MIN和AVG分别计算出每个部门的最高、最低和平均工资。
最后的查询结果将会显示每个部门的DEPARTMENT_ID、最高工资(MAX_SALARY)、最低工资(MIN_SALARY)和平均工资(AVG_SALARY)。
请注意,以上查询语句假设数据库中有一个名为EMPLOYEES的表,表中包含员工的信息,其中包括部门ID(DEPARTMENT_ID)和工资(SALARY)。您可以根据实际情况修改表名和字段名。
### 回答3:
要查询员工数大于3的部门最高、最低、平均工资,可以使用以下SQL语句:
```sql
SELECT department_name,
MAX(salary) AS 最高工资,
MIN(salary) AS 最低工资,
AVG(salary) AS 平均工资
FROM employees
JOIN departments ON employees.department_id = departments.department_id
GROUP BY department_name
HAVING COUNT(*) > 3;
```
该语句使用了JOIN语句将employees表与departments表连接起来,根据department_id进行连接。然后使用GROUP BY语句按照部门名称进行分组,通过HAVING子句筛选出员工数大于3的部门。
最后,使用MAX函数获取最高工资,MIN函数获取最低工资,AVG函数获取平均工资,并给这些结果起别名。最终查询结果将会显示部门名称、最高工资、最低工资和平均工资。
阅读全文