用MySQL查询每个部门的工资总和,只查询有领导和员工,并且要求工资总和大于 5400
时间: 2024-02-11 21:07:35 浏览: 207
假设您的员工表名称为`employee`,部门表名称为`department`,可以使用如下SQL语句查询每个部门的工资总和:
```sql
SELECT d.name, SUM(e.salary) AS total_salary
FROM employee e
INNER JOIN department d ON e.department_id = d.id
WHERE e.job_title IN ('leader', 'employee')
GROUP BY d.name
HAVING total_salary > 5400;
```
其中,`INNER JOIN`用于连接员工表和部门表,`WHERE`子句用于筛选出职称为领导或员工的员工,`GROUP BY`子句用于按照部门名称进行分组,`HAVING`子句用于筛选出工资总和大于5400的部门。
需要注意的是,`INNER JOIN`语句中的`e.department_id = d.id`表示员工表中的部门ID与部门表中的ID进行连接,需要根据实际的数据库表结构进行调整。另外,`SUM(e.salary)`表示对每个部门的工资总和进行求和,`AS total_salary`表示对求和结果进行别名设置。
相关问题
mysql查询每一个部门的工资总和,要求只显示总工资大于90w的部门信息
你可以使用以下的 SQL 语句来查询每一个部门的工资总和,并且只显示总工资大于90w的部门信息:
```
SELECT dept_name, SUM(salary) AS total_salary
FROM employee
GROUP BY dept_name
HAVING total_salary > 900000;
```
在这个查询中,我们首先使用 `GROUP BY` 子句按照部门名称对 `employee` 表进行分组,然后使用 `SUM` 函数计算每个部门的工资总和。最后,我们使用 `HAVING` 子句筛选出总工资大于90w的部门信息,并将结果按照部门名称和总工资进行显示。
用mysql写一个能够学生姓名查询成绩总和大于60和小于60的人数的sql语句
可以使用以下的 SQL 语句实现查询成绩总和大于60和小于60的学生人数:
```
SELECT COUNT(*) AS student_count, score_range
FROM (
SELECT student_name, SUM(score) AS total_score,
CASE
WHEN SUM(score) > 60 THEN '大于60'
WHEN SUM(score) < 60 THEN '小于60'
END AS score_range
FROM scores
GROUP BY student_name
) AS subquery
WHERE score_range IN ('大于60', '小于60')
GROUP BY score_range;
```
其中,`scores` 表是存储成绩信息的表,包含三个字段:`student_name`(学生姓名)、`subject`(科目名称)和 `score`(成绩)。上述 SQL 语句会返回成绩总和大于60或小于60的学生人数。内部查询使用 `SUM` 函数计算每个学生的成绩总和,并使用 `CASE` 表达式判断成绩总和是否大于60。然后,外部查询使用 `COUNT` 函数统计符合条件的学生人数,并按照成绩范围进行分组。
阅读全文