Базы данных / SQL trainee
В каком порядке выполняются части SELECT-запроса?
Ответ
FROM → JOIN → WHERE → GROUP BY → HAVING → SELECT → DISTINCT → ORDER BY → LIMIT. Это важно: WHERE применяется ДО агрегации, HAVING — после. Алиасы из SELECT можно использовать в ORDER BY, но не в WHERE.
Разбор: Логический порядок: FROM/JOIN формируют набор строк, WHERE фильтрует ДО агрегации, затем GROUP BY и HAVING (фильтр после агрегации), потом SELECT, DISTINCT, ORDER BY и LIMIT. Поэтому алиасы из SELECT недоступны в WHERE (он выполняется раньше), но доступны в ORDER BY, а агрегатные функции в WHERE использовать нельзя — для этого есть HAVING.
Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.