Это слишком долго для комментария.
Ваш код проверяет даты в течение 7 дней с момента максимум в данных.Поскольку вы знаете максимальную дату, они эквивалентны:
`date` >= SUBDATE(`max_date`, interval 7 day) and `date` <= `max_date`
`date` >= SUBDATE(`max_date`, interval 7 day)
Второе условие всегда выполняется.Конечно, я предполагаю, что max_date
является максимальным значением date
.Если нет, то вам нужны оба сравнения.
Это отличается от последних 7 дней, которые большинство людей будут интерпретировать относительно текущей даты.Это было бы больше похоже на:
case when `date` >= SUBDATE(curdate(), interval 7 day) and
`date` <= curdate()
then 'Yes'
else 'No'
end
(Примечание: в течение одной недели вы можете захотеть interval 6 day
, но я игнорирую граничные условия в логике.) Если date
s представляют вещи, которыеслучились, они обязательно в прошлом, поэтому второе сравнение не нужно.