1

If we have a table named Employees which contains columns emp_name, dept_name, year and salary.

Following are the row headers and values: (emp_name, dept_name, year, salary) (Nick, sales, 2020, 20000), (Peter, manager, 2020, 30000), (Nick, sales, 2021, 22000), (Peter, manager, 2021, 35000), (Sam, sales, 2022, 25000), (David, manager, 2022, 40000)

Now I want to select emp_name, dept_name, year and salary, and group by dept_name, emp_name. But I want distinct emp_name with max salary.

I tried a query:

select emp_name, dept_name, salary from Employees group by dept_name, emp_name, salary having max(salary);

output headers and values: (emp_name, dept_name, year, salary), (Nick, sales, 2020, 20000), (Nick, sales, 2021, 22000), (Peter, manager, 2020, 30000), (Peter, manager, 2021, 35000), (Sam, sales, 2022, 25000), (David, manager, 2022, 40000)

This is not the expected output.

Expected output: emp_name dept_name year salary Nick sales 2021 22000 Sam sales 2021 25000 Peter manager 2022 35000 David manager 2022 40000

Can someone help with the query?

0 Answers0