Sql 计算每个部门的最高工资
我必须创建一个报告,显示每个部门的最高工资。 我必须有以下列:部门id、部门名称、姓氏和最高工资。它不能包含任何重复项 我已经设法获得了所有列的查询结果,但是由于姓氏列,我得到了如下查询结果Sql 计算每个部门的最高工资,sql,Sql,我必须创建一个报告,显示每个部门的最高工资。 我必须有以下列:部门id、部门名称、姓氏和最高工资。它不能包含任何重复项 我已经设法获得了所有列的查询结果,但是由于姓氏列,我得到了如下查询结果 90, Executive, De Haan, 17000 90, Executive, Kochhar, 17000 80, Sales, Tucker, 10000 80, Sales, Bernstein, 9500 80, Sales, Hall, 9000 显然,执行部门的最高收入是17
90, Executive, De Haan, 17000
90, Executive, Kochhar, 17000
80, Sales, Tucker, 10000
80, Sales, Bernstein, 9500
80, Sales, Hall, 9000
显然,执行部门的最高收入是17000英镑,销售额是10000英镑。我只需要显示每个部门的1个薪资金额。我如何做到这一点有什么想法吗
下面是我在SQL中键入的内容,以获得此结果
SELECT DISTINCT department_id, department_name, last_name, MAX(salary)
FROM employees
NATURAL JOIN departments
GROUP BY department_id, department_name, last_name
ORDER BY MAX(salary) DESC;
因此,您需要找到每个部门id的最高工资,然后连接回employee表以提取姓氏。大概是这样的:
SELECT sub.department_id, sub.department_name, emp.last_name, sub.max_sal
FROM
(SELECT e.department_id, d.department_name, MAX(e.salary) AS max_sal
FROM employees e
INNER JOIN departments d
ON e.department_id = d.department_id
GROUP BY e.department_id, d.department_name) sub
INNER JOIN employees emp
ON sub.department_id = emp.department_id
AND sub.max_sal = emp.salary
请注意,此解决方案将显示多个人,如果他们的工资相同,并且他们所在部门的工资最高。员工表中有哪些列?部门id、姓氏和薪水您的要求有冲突。一方面,您希望包括姓氏,当多个人的工资最高时,姓氏会提供多个记录,另一方面,每个部门只需要一个记录。若你们真的只想要一条记录,而你们不在乎你们返回的是谁,那个么你们需要考虑一些类似于部门和薪水划分的东西,。然后选择第一张唱片。好的,谢谢,我不认为这是很容易做到的。这是我老师布置的作业的一部分……忘了自然连接结构吧。坚持显式连接条件(以在表定义更改时避免您和其他人的痛苦。)