SQL. Как получить строку с Максимальным значением?
1. Получаю таблицу типа "Отдел - Суммарная заработная плата":
select dept_no,sum(salary) as sum from salaries as s join dept_emp as d on s.emp_no = d.emp_no where s.to_date = '9999-01-01' group by d.dept_no
2. Далее нужно вывести отдел с Максимальной Суммой. Как это решаю я:
select y.dept_no, y.sum from (select max(sum) as max from (select dept_no,sum(salary) as sum from salaries as s join dept_emp as d on s.emp_no = d.emp_no where s.to_date = '9999-01-01' group by d.dept_no) as z) as x join (select dept_no,sum(salary) as sum from salaries as s join dept_emp as d on s.emp_no = d.emp_no where s.to_date = '9999-01-01' group by d.dept_no) as y on x.max = y.sum
Вопрос: Как это делается правильно? Уж слишком громоздко.
Для правильного вопроса надо знать половину ответа
SELECT `dept_no`, sum(`salary`) AS `sum`
FROM `salaries` AS `s`
JOIN `dept_emp` AS `d`
ON `s`.`emp_no` = `d`.`emp_no`
WHERE `s`.`to_date` = '9999-01-01'
GROUP BY `d`.`dept_no`
ORDER BY `sum` DESC
LIMIT 1