Anda cukup dekat, Anda hanya perlu meletakkan kondisi di dalam fungsi agregat untuk agregasi bersyarat yang ingin Anda lakukan:
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;
Hasil masih dikelompokkan berdasarkan companyID
, tetapi fungsi agregasi kedua melakukan penjumlahan 1 dan 0 bergantung pada apakah pengguna masuk dalam sebulan terakhir atau tidak.