Многие новички путают
WHERE и HAVING.Запомните простое правило:
•
WHERE фильтрует отдельные строки.•
HAVING фильтрует уже сгруппированные результаты.Пример
WHERE salary > 50000
Отбирает строки до выполнения группировки.
HAVING COUNT(*) > 5
Отбирает группы после выполнения
GROUP BY.Запомните порядок выполнения SQL-запроса
WHERE → GROUP BY → HAVING
Или проще:
•
WHERE — сначала;•
GROUP BY — группировка;•
HAVING — после группировки.Если SQL кажется сложным, проблема чаще всего не в самом запросе, а в непонимании порядка его выполнения.
Освойте этот принцип один раз — и работа с
JOIN, агрегатными функциями и аналитическими отчётами станет намного понятнее.👉 @SQLPortal