Sie sind ziemlich nah dran, Sie müssen nur die Bedingungen für die bedingte Aggregation, die Sie durchführen möchten, in die Aggregatfunktion einfügen:
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;
Die Ergebnisse sind weiterhin nach companyID
gruppiert , aber die zweite Aggregationsfunktion führt eine Summe von Einsen und Nullen aus, je nachdem, ob sich der Benutzer innerhalb des letzten Monats angemeldet hat oder nicht.