Вы можете получить количество сообщений в месяц, например:
SELECT COUNT(*) AS num_posts_per_month FROM table GROUP BY MONTH(date);
Теперь нам нужно количество дней в месяце:
SELECT COUNT(*) / DATEDIFF(MAKEDATE(YEAR(date), MONTH(date)) + INTERVAL 1 MONTH, MAKEDATE(YEAR(date), MONTH(date))) AS avg_over_month
FROM table GROUP BY MONTH(date);
Получит среднее количество сообщений в день в течение календарного месяца сообщения. То есть средние значения за текущий месяц будут продолжать расти до конца месяца. Если вы хотите получить средние значения за текущий месяц, вы должны поставить условное выражение, чтобы получить истинное количество прошедших дней.