Что такое Порядок выполнения SQL-запроса?

Ответ

FROM → JOIN → WHERE → GROUP BY → HAVING → SELECT → DISTINCT → ORDER BY → LIMIT. Важно: WHERE выполняется ДО GROUP BY (нельзя фильтровать по агрегату в WHERE). HAVING — после GROUP BY (для агрегатов).

Разбор: Логический порядок начинается с FROM/JOIN (формирование источника), затем WHERE (фильтрация строк ДО группировки), GROUP BY, HAVING (фильтрация по агрегатам), и только потом SELECT, DISTINCT, ORDER BY, LIMIT. Главная ловушка — считать, что SELECT выполняется первым: именно поэтому алиасы из SELECT не видны в WHERE, и нельзя писать агрегат в WHERE, для этого есть HAVING.

Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.

Заказать гайд Пройти тест
новые гайды и свежие вопросы с собесов — первыми в Telegram Смотреть гайды Подписаться