HAVING 'Min Salary' > 800
Одинарные кавычки вокруг идентификатора превращают его в буквальную строку. Таким образом, это условие фактически проверяет, является ли string 'Min Salary'
больше 800. При приведении к числу 'Min Salary'
становится 0
, что меньше 800
. Это не то, что вы ожидаете.
Также обратите внимание, что MySQL обрабатывает двойные кавычки так же, как одинарные кавычки - тогда как в некоторых других базах данных, таких как Oracle или Postgres, они используются для кавычек идентификаторов.
Если вы хотите иметь идентификатор, содержащий пробел, то вам нужно использовать обратные кавычки, как MySQL цитирует идентификаторы. Итак:
SELECT department_id, ROUND(MIN(salary), 2) AS `Min Salary`
FROM employees
GROUP BY department_id
HAVING `Min Salary` > 800;