mysql求每个部门的平均薪水 求各个部门的最高薪水 求每个部门每个岗位的最高薪水 求平均薪资大于2000的部门编号 将部门平均薪水大于1500的部门编号列出来,按部门平均薪水降序排列 选择公司中有奖金的员工姓名,工资 查询员工最高工资和最低工资的差
时间: 2023-11-11 21:38:32 浏览: 48
感谢您的提问,请看下面的回答:
1. 求每个部门的平均薪水:
SELECT deptno, AVG(salary)
FROM employees
GROUP BY deptno;
2. 求各个部门的最高薪水:
SELECT deptno, MAX(salary)
FROM employees
GROUP BY deptno;
3. 求每个部门每个岗位的最高薪水:
SELECT deptno, job, MAX(salary)
FROM employees
GROUP BY deptno, job;
4. 求平均薪资大于2000的部门编号:
SELECT deptno
FROM employees
GROUP BY deptno
HAVING AVG(salary) > 2000;
5. 将部门平均薪水大于1500的部门编号列出来,按部门平均薪水降序排列:
SELECT deptno, AVG(salary)
FROM employees
GROUP BY deptno
HAVING AVG(salary) > 1500
ORDER BY AVG(salary) DESC;
6. 选择公司中有奖金的员工姓名,工资:
SELECT ename, salary
FROM employees
WHERE comm IS NOT NULL;
7. 查询员工最高工资和最低工资的差:
SELECT MAX(salary) - MIN(salary) AS salary_range
FROM employees;
相关问题
mysql选择每个部门的员工人数和平均薪水
可以使用下面这条 SQL 语句来选择每个部门的员工人数和平均薪水:
```
SELECT dept_name, COUNT(*) AS num_employees, AVG(salary) AS avg_salary
FROM employee JOIN department ON employee.dept_id = department.dept_id
GROUP BY dept_name;
```
在这个 SQL 语句中,我们首先使用 `JOIN` 操作将 `employee` 表和 `department` 表连接起来,然后使用 `GROUP BY` 操作按照部门名称进行分组。最后,我们在 `SELECT` 语句中使用 `COUNT(*)` 函数来计算每个部门的员工人数,并使用 `AVG(salary)` 函数来计算每个部门的平均薪水。
mysql每一个部门平均工资的等级
您可以通过以下 SQL 语句查询每个部门的平均工资等级:
```
SELECT dept_name, AVG(salary) as avg_salary,
CASE
WHEN AVG(salary) < 5000 THEN '低'
WHEN AVG(salary) BETWEEN 5000 AND 10000 THEN '中'
ELSE '高'
END as salary_level
FROM employees JOIN departments USING(dept_no)
GROUP BY dept_name;
```
该语句会将 `employees` 表和 `departments` 表连接起来,计算每个部门的平均工资,并对平均工资进行分级。最后返回每个部门的名称、平均工资、以及平均工资等级。
其中,`CASE` 语句用于根据平均工资的范围分级,这里定义了三个等级:低、中、高,分别对应平均工资小于 5000、平均工资在 5000 到 10000 之间、平均工资大于 10000。
请注意,以上 SQL 语句仅为示例,具体查询语句需要根据实际数据表结构和数据格式进行调整。