如何在SQL中使用group by时返回多个列

Ari*_*ata 0 mysql sql

我想要员工的姓名以及他们的薪水和部门,他们的薪水最高不超过50,000.我有以下几点

SELECT department, MAX(salary) as Highest salary
FROM employees
GROUP BY department
HAVING MAX(salary) < 50000
Run Code Online (Sandbox Code Playgroud)

如何获取要退回的员工姓名?

gbn*_*gbn 10

很近...

SELECT department, name, MAX(salary) as Highest salary
FROM employees
GROUP BY department, name
HAVING MAX(salary) < 50000
Run Code Online (Sandbox Code Playgroud)

评论更新后

SELECT name, department , salary
FROM employees e
   JOIN
  (
    SELECT department as dept, MAX(salary) as HighestSalary
    FROM employees
    GROUP BY department
  ) MaxE ON e.department = MaxE.dept AND e.salary = MaxE.HighestSalary
Run Code Online (Sandbox Code Playgroud)

  • 您实际上是否将该问题与该查询结合起来了解?恭喜! (3认同)

Der*_*omm 5

除非我误解了要求,否则只需将员工添加到选择/组中?

SELECT employee, department, MAX(salary) as Highest salary
FROM employees
GROUP BY employee, department
HAVING MAX(salary) < 50000
Run Code Online (Sandbox Code Playgroud)