@1312429132

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

Вопрос: Как это делается правильно? Уж слишком громоздко.
  • Вопрос задан
  • 810 просмотров
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
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
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы