WHERE применяется ко всем отдельным строкам, поэтому WHERE MAX (...) будет соответствовать всем строкам.
HAVING похож на WHERE, но в текущей группе.Это означает, что вы можете делать такие вещи, как HAVING count (*)> 1, который будет показывать только группы с более чем одним результатом.
Таким образом, чтобы ответить на ваш вопрос, он будет включать только те строки, где запись в группе, котораяимеет максимальную (МАКС.) дату, превышающую 365. В этом случае вы также выбираете МАКС. (дата), поэтому да, она исключает строки с date_diff <= 365. </p>
Однако вы можете выбрать МИН. (дата) и посмотрите минимальную дату во всех группах, максимальная дата которых превышает 365. В этом случае не будут исключены «строки» с date_diff <= 365, а скорее группы с max (date_diff) <= 365. </p>
Надеюсь, это не слишком запутанно ...