您的位置:首页 > 数据库 > MySQL

MySQL查询每个部门的最高薪水

2015-04-09 14:18 225 查看
假设有两个表Department和Employee。

department的表结构如下:

+-------+-------------+------+-----+---------+----------------+

| Field | Type        | Null | Key | Default | Extra          |

+-------+-------------+------+-----+---------+----------------+

| Id    | int(11)     | NO   | PRI | NULL    | auto_increment |

| Name  | varchar(60) | YES  |     | NULL    |                |

+-------+-------------+------+-----+---------+----------------+

employee表结构如下:

+--------------+-------------+------+-----+---------+----------------+

| Field        | Type        | Null | Key | Default | Extra          |

+--------------+-------------+------+-----+---------+----------------+

| Id           | int(11)     | NO   | PRI | NULL    | auto_increment |

| Name         | varchar(60) | YES  |     | NULL    |                |

| Salary       | double(9,2) | YES  |     | NULL    |                |

| DepartmentId | int(11)     | YES  | MUL | NULL    |                |

+--------------+-------------+------+-----+---------+----------------+

现在要查询每个部门的最高薪水,查询语句如下:

SELECT
d. NAME Department,
e. NAME Employee,
e.Salary Salary
FROM
Employee e
JOIN (
SELECT
MAX(Salary) max,
DepartmentId
FROM
Employee
GROUP BY
DepartmentId
) g ON e.DepartmentId = g.DepartmentId
JOIN Department d ON (e.DepartmentId = d.Id)
WHERE
e.Salary = g.max;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: