Несколько Count + умение обращаться с временнЫми функциями, и у вас получится универсальный запрос со статистикой:
Если scv.date типа date или datetime:
select count(case when scv.date >= CURDATE() then 1 end) today_count,
count(case when scv.date >= DATE_SUB(CURDATE(), INTERVAL 1 DAY) and scv.date < CURDATE() then 1 end) yesterday_count,
count(case when scv.date >= DATE_SUB(CURDATE(), INTERVAL 1 WEEK) then 1 end) week_count,
count(case when scv.date >= DATE_SUB(CURDATE(), INTERVAL 1 MONTH) then 1 end) month_count
from statistics_couter_visit as scv
where scv.date >= DATE_SUB(CURDATE(), INTERVAL 1 MONTH) -- тут ограничение по макс. окну просмотра статистики, то есть по month_count
Если scv.date типа timestamp (или любое другое целочисленное представление):
select count(case when scv.date >= UNIX_TIMESTAMP(CURDATE()) then 1 end) today_count,
count(case when scv.date >= UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 1 DAY)) and scv.date < UNIX_TIMESTAMP(CURDATE()) then 1 end) yesterday_count,
count(case when scv.date >= UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 1 WEEK)) then 1 end) week_count,
count(case when scv.date >= UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 1 MONTH)) then 1 end) month_count
from statistics_couter_visit as scv
where scv.date >= UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 1 MONTH)) -- тут ограничение по макс. окну просмотра статистики, то есть по month_count
PS: Естественно, по полю scv.date должен быть создан индекс.