Я думаю, что вам нужна агрегация:
select
date_format(mydate, '%Y-%m') yyyy_mm,
count(*) cnt
from new_case
where sla_client = 'ITA'
group by date_format(mydate, '%Y-%m')
order by yyyy_mm
Это дает вам одну строку в месяц с количеством строк в этом месяце (если нет данных за данный месяц, тогда он просто делает не отображаются в наборе результатов).
Если вам нужно выполнить фильтрацию по заданному диапазону дат, я бы рекомендовал использовать предложение where
, которое фильтрует непосредственно значения даты, а не применяет функции даты. Допустим, вам нужны последние 3 месяца и текущий месяц, а затем:
select
date_format(mydate, '%Y-%m') yyyy_mm,
count(*) cnt
from new_case
where
sla_client = 'ITA'
and mydate >= date_format(current_date, '%Y-%m-01') - interval 3 month
and mydate < date_format(current_date, '%Y-%m-01') + interval 1 month
group by date_format(mydate, '%Y-%m')
order by yyyy_mm