Du är ganska nära, du behöver bara sätta villkoren i aggregatfunktionen för den villkorliga aggregering du vill utföra:
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;
Resultaten är fortfarande grupperade efter companyID
, men den andra aggregeringsfunktionen utför en summa av 1:or och 0:or beroende på om användaren loggat in under den senaste månaden eller inte.