Je bent redelijk dichtbij, je hoeft alleen de voorwaarden in de aggregatiefunctie te plaatsen voor de voorwaardelijke aggregatie die je wilt uitvoeren:
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;
De resultaten zijn nog steeds gegroepeerd op companyID
, maar de tweede aggregatiefunctie voert een som van 1s en 0s uit, afhankelijk van of de gebruiker zich de afgelopen maand heeft aangemeld of niet.