Можно ли использовать алиасы в HAVING

«Можно ли использовать алиасы в HAVING» — вопрос из категории SQL, который задают на 33% собеседований Аналитик Данных. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, в SQL алиасы, определенные в SELECT, можно использовать в HAVING. Это работает потому что порядок выполнения запроса: FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY. HAVING выполняется после GROUP BY, но до SELECT, однако большинство СУБД (PostgreSQL, MySQL, SQL Server) позволяют ссылаться на алиасы из SELECT в HAVING.

Пример:

SELECT 
    department_id,
    AVG(salary) AS avg_salary
FROM employees
GROUP BY department_id
HAVING avg_salary > 5000;

Но алиасы из HAVING нельзя использовать в WHERE, так как WHERE выполняется раньше.