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);
Vous voulez faire vos agrégations (SUM dans ce cas) dans SELECT, et GROUP BY comment vous voulez qu'elles soient totalisées (par fname, par MONTH).