Вы можете попробовать этот запрос:
select DATE_FORMAT(date,'%Y%m'), id, avg(volume) from xxx1
group by DATE_FORMAT(date,'%Y%m'), ID;
или
select DATE_FORMAT(date,'%m'), id, avg(volume) from xxx1
group by DATE_FORMAT(date,'%m'), ID
Пояснение:
DATE_FORMAT(date,'%Y%m')
извлекает месяц и год из даты. Тогда как DATE_FORMAT(date,'%m')
извлекает только месяц. (Я не был уверен, хотите ли вы месяц без года).
По сути, вы извлекаете месяц, а затем группируете его вместе с идентификатором и вычисляете среднее значение объема для этих групп.