subdate(r.date, interval weekday(r.date) day) = subdate(curdate(), interval weekday(curdate()) day)
and r.add_date >= subdate(curdate(), interval weekday(curdate()) day) -- текущ. понедельник с точки зрения curdate()
and r.add_date < subdate(curdate(), interval weekday(curdate()) - 7 day) -- следующий понедельник с точки зрения curdate()
я хочу записаться на будущие недели то возвращается результат с тем, что я уже есть в базе и записан
and r.add_date < subdate(curdate(), interval weekday(curdate()) - 7 day)
Формулы со случайными числами не подходят, тк. данные должны хранится не только в печатном, но и в электронном виде.
Любую колонку, которая не вошла в GROUP BY
у топикстартера не было условия на количество сгруппированных записей, но у Вас было
А точно не top столько-то записей получаете? А то 97238448 записей за 100 мс точно полностью не выбрать.
Покажите план запроса без count,
и еще план и время такого запроса:
PS: Вообще, для классического запроса тяжело агрегировать на таком временном срезе ~100 млн. записей, нужно использовать либо отдельные таблицы для подготовки отчетов, либо специальные системы для сбора статистики.