У меня есть код, который генерирует SQL и нужно понимать, если HAVING когда-либо понадобится (или полезно) для неагрегированных сгруппированных столбцов? Я не нашел примеров, которые предполагают, что это так, но хотелось проверить здесь.Является ли когда-либо необходимым для неагрегированных сгруппированных столбцов?
Документы MySQL имеют этот комментарий. «Стандарт SQL требует, чтобы HAVING должен ссылаться только на столбцы в предложении GROUP BY или в столбцах, используемых в агрегатных функциях».
Я знаю, что HAVING необходимо для агрегированных условий на группы, а также понять, что там, где могут быть использованы для неагрегированные сгруппированных столбцов (которые могут быть более эффективными, чем с), но мои вопросы это:
Всегда ли (или полезно) для неагрегированных сгруппированных столбцов?
Благодаря
Что вы подразумеваете под «неагрегированными группируемыми столбцами?» Пример? –
Я попытался использовать его (на SQL Server) для обмана оптимизатора, чтобы отложить оценку некоторых условий. Я не помню специфику. И хотя я помню, как вижу различия в плане исполнения, я не думаю, что это дало мне результат, на который я надеялся. – shawnt00
@ExplosionPills OP означает (я думаю), что в предложении select есть неагрегированные столбцы, которые мы также группируем и включаем в них условия, содержащие предложение. –