查询每个工种、每个部门的部门名、工种名和最低工资
时间: 2023-07-10 17:27:42 浏览: 381
您可以使用如下的 SQL 语句查询每个工种、每个部门的部门名、工种名和最低工资:
```
SELECT d.department_name, j.job_title, MIN(j.min_salary) AS min_salary
FROM employees e
JOIN jobs j ON e.job_id = j.job_id
JOIN departments d ON e.department_id = d.department_id
GROUP BY d.department_name, j.job_title;
```
这个查询使用了 `JOIN` 来联接 `employees`、`jobs` 和 `departments` 表,然后使用 `GROUP BY` 对 `department_name` 和 `job_title` 进行分组,最后使用 `MIN` 函数来计算每个组中的最低工资。
相关问题
SQL:查询每个工种,每个部门的最低工资
好的,以下是SQL查询语句:
```
SELECT 工种, 部门, MIN(工资) AS 最低工资
FROM 工资表
GROUP BY 工种, 部门;
```
其中,工资表是存储工资信息的表,包含字段:工种、部门、工资。这个查询会按照工种和部门分组,然后计算每组的最低工资。最后返回结果集,包含字段:工种、部门、最低工资。
1)查询有奖金的员工名、部门名。 (2)查询城市名中第二个字符为o的部门名和城市名。 (3)查询有奖金的每个部门的部门名和部门的领导编号和该部门的最低工资。 (4)查询每个工种的工种名和员工的个数,并且按员工个数降序。 (5)查询员工名和其对应的上级名。(自连接)
(1)查询有奖金的员工姓名和所在部门名称,假设`employees`表有`bonus`字段表示是否有奖金,`department_name`字段表示部门名,可以这样编写:
```sql
SELECT employee_name, department_name
FROM employees
WHERE bonus = 'Y';
```
(2)查询城市名中第二个字符为'O'的部门和城市,假设`departments`表有`city_name`字段,可以这样筛选:
```sql
SELECT d.department_name, c.city_name
FROM departments d
JOIN cities c ON d.city_id = c.id
WHERE SUBSTRING(c.city_name, 2, 1) = 'O';
```
(3)查询有奖金的每个部门的部门名、领导编号(假设字段为`manager_id`)和该部门的最低工资,可以这样写:
```sql
SELECT department_name, manager_id, MIN(salary) as lowest_salary
FROM employees
WHERE bonus = 'Y'
GROUP BY department_name, manager_id;
```
(4)查询每个工种的工种名(假设字段为`job_title`)和员工的数量,并按员工数量降序排列:
```sql
SELECT job_title, COUNT(*) as employee_count
FROM employees
GROUP BY job_title
ORDER BY employee_count DESC;
```
(5)查询员工与其直接上级的名字(自连接),假设`employees`表有`supervisor_id`字段指代上级ID,可以这样查询:
```sql
SELECT e.employee_name, su.employee_name AS supervisor_name
FROM employees e
LEFT JOIN employees su ON e.supervisor_id = su.employee_id;
```
阅读全文