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);
Sie möchten Ihre Aggregationen (SUM in diesem Fall) in SELECT und GROUP BY so durchführen, wie Sie sie summieren möchten (nach fname, nach MONTH).