Jesteś całkiem blisko, wystarczy umieścić warunki wewnątrz funkcji agregującej dla agregacji warunkowej, którą chcesz wykonać:
SELECT
companyID,
COUNT(userID) AS `totalCompanyUsers`,
SUM(CASE
WHEN
TIMESTAMPDIFF(MONTH, lastLogin, NOW()) < 1 THEN 1
ELSE 0
END
) AS `numUsersWhoLoggedInWithinLastMonth`
FROM Users
GROUP BY companyID;
Wyniki są nadal pogrupowane według companyID
, ale druga funkcja agregacji wykonuje sumę jedynek i zer w zależności od tego, czy użytkownik zalogował się w ciągu ostatniego miesiąca, czy nie.