Это мой сценарий из Oracle, но у меня проблемы с его запуском в MySQL.
SELECT s.branch_no, SUM(s.staff_salary)
from staff AS s
HAVING SUM(staff_salary) = (SELECT MAX(SUM(S2.staff_salary))
FROM staff AS S2
GROUP BY S2.BRANCH_NO)
GROUP BY s.branch_no;
Ошибка, которую я получаю, когда запускаю ее в MySQL:
SELECT s.branch_no, SUM(s.staff_salary)
from staff AS s
HAVING SUM(staff_salary) = (SELECT MAX(SUM(S2.staff_salary))
FROM staff AS S2
GROUP BY S2.branch_no)
GROUP BY s.branch_no
LIMIT 0, 50
MySQL сказал:
# 1064 - У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с "GROUP BY s.branch_no LIMIT 0, 50" в строке 7
Попробуйте разделить запрос на маленькие подзапросы.
В вашем случае я бы постарался:
SELECT *
FROM (
SELECT SUM(staff_salary) sm , branch_no
FROM staff
GROUP BY BRANCH_NO
) s
ORDER BY sm DESC LIMIT 1