sql 18,查询每个部门最高工资和最低工资的差是多少。 19.查询每个部门工资高于4000的人数。 20.查询每个部门工资高于4000并且是党员的人数。 21.查询每个部门中男性的人数。 22.查询每个部门中工资高于6000的性别是女的人数。
时间: 2024-11-16 13:28:07 浏览: 9
在SQL中,我们可以使用GROUP BY和聚合函数来完成这些查询。这里给出一些基本的示例,假设我们有一个名为`employees`的表,包含`department_id`, `salary`, `gender`, 和 `is_party_member`等字段:
1. 查询每个部门最高工资和最低工资的差:
```sql
SELECT department_id, MAX(salary) - MIN(salary) AS wage_difference
FROM employees
GROUP BY department_id;
```
2. 查询每个部门工资高于4000的人数:
```sql
SELECT department_id, COUNT(*)
FROM employees
WHERE salary > 4000
GROUP BY department_id;
```
3. 查询每个部门工资高于4000并且是党员的人数:
```sql
SELECT department_id, COUNT(*)
FROM employees
WHERE salary > 4000 AND is_party_member = 1
GROUP BY department_id;
```
请注意,`is_party_member`在这里假设为布尔值,1代表是党员。
4. 查询每个部门中男性的人数:
```sql
SELECT department_id, COUNT(*)
FROM employees
WHERE gender = '男'
GROUP BY department_id;
```
5. 查询每个部门中工资高于6000的性别是女性的人数:
```sql
SELECT department_id, COUNT(*)
FROM employees
WHERE salary > 6000 AND gender = '女'
GROUP BY department_id;
```
请记得根据实际数据库结构调整上述查询,如果`is_party_member`不是布尔值,需要相应地处理。另外,在执行这些查询前,确保表中有正确的数据类型和字段存在。如果你有具体的表结构或更复杂的条件,可能需要进一步细化查询。
阅读全文