Du er ret tæt på, du skal bare sætte betingelserne inde i aggregeringsfunktionen for den betingede aggregering, du vil udføre:
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;
Resultaterne er stadig grupperet efter companyID
, men den anden aggregeringsfunktion udfører en sum af 1'er og 0'er afhængigt af, om brugeren er logget ind inden for den sidste måned eller ej.