ГДЕ фильтрует исходные строки до группировки, а ИМЕЮЩИЕ — сформированные группы, в том числе по агрегатным значениям.
Чем секция «ИМЕЮЩИЕ» принципиально отличается от «ГДЕ»?
`ГДЕ` фильтрует исходные строки до группировки, а `ИМЕЮЩИЕ` — сформированные группы, в том числе по агрегатным значениям.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
ГДЕ фильтрует исходные строки до группировки, а ИМЕЮЩИЕ — сформированные группы, в том числе по агрегатным значениям.
Например, ГДЕ Дата >= &Начало ограничивает документы, а ИМЕЮЩИЕ СУММА(Сумма) > &Порог оставляет группы с достаточным итогом. Условие на обычное поле, которое можно безопасно применить раньше, обычно помещают в ГДЕ. Это логический порядок обработки; физический план СУБД может оптимизировать выполнение.