SELECT
fname,
MONTH(eventDate),
SUM(IF(WEEKDAY(eventDate) < 5,1,0)) AS WeekdayCount,
SUM(IF(WEEKDAY(eventDate) >= 5,1,0)) AS WeekendCount
FROM eventcal AS e
LEFT JOIN users AS u ON e.primary = u.username
GROUP BY fname, MONTH(eventDate);
Chcesz wykonać swoje agregacje (w tym przypadku SUM) w SELECT i GROUP BY, jak chcesz je zsumować (według fname, przez MIESIĄC).