Проверяет понимание порядка выполнения SQL-запроса.
SQL выполняется не в том порядке, как написано. Сначала FROM, потом WHERE, затем GROUP BY, HAVING, SELECT, ORDER BY и LIMIT.
Фактический порядок выполнения SQL-запроса:
FROM — источники данных
JOIN — объединение таблиц
WHERE — фильтрация строк
GROUP BY — группировка
HAVING — фильтрация агрегатов
SELECT — выбор нужных столбцов
ORDER BY — сортировка результата
LIMIT / OFFSET — ограничение выборки
SELECT country, COUNT(*) as cnt
FROM users
WHERE age > 18
GROUP BY country
HAVING COUNT(*) > 100
ORDER BY cnt DESC
LIMIT 10;Важно:
Нельзя использовать псевдонимы (AS) из SELECT в WHERE.
HAVING выполняется после GROUP BY, когда агрегаты уже посчитаны.