我有一个名为 activity
的表,它使用以下列:
LoginDate, LoginID, Department, IsMGR
我尝试了这个查询:
SELECT COUNT(*),
DATE_FORMAT( LoginDate, '%m%d%Y' ) AS LogDate,
LoginID, Department
FROM `activity`
WHERE IsMGR = '1'
AND LoginDate > '2011-01-01 00:00:00'
GROUP BY LoginID, LogDate
ORDER BY LoginID,LogDate DESC
我最终得到的是:
3 02172011 sdavis accounting 1 02162011 sdavis accounting 2 02132011 sdavis accounting 1 02102011 sdavis accounting 5 02092011 sdavis accounting 4 02082011 sdavis accounting 1 03182011 dmorris marketing 1 03092011 dmorris marketing 6 04142011 cchan technology 1 03282011 cchan technology 2 03262011 cchan technology 2 03112011 cchan technology 1 03102011 cchan technology
这给出了他们每天登录的次数。我想要的是每天只进行一次计数,并将每个人的所有天数分组并计数他们登录的天数以及最后一天。使用上面的数据示例,我想要的输出应该是
6 02172011 sdavis accounting 2 03182011 dmorris marketing 5 04142011 cchan technology
所以我想要的是通过第二组标准对上述分组结果进行分组......?
最佳答案
试试这个:
SELECT COUNT(distinct LoginDate) AS NumLogins,
DATE_FORMAT( MAX(LoginDate), '%m%d%Y' ) AS LastLogDate,
LoginID, Department
FROM activity
WHERE IsMGR='1' AND LoginDate > '2011-01-01 00:00:00'
GROUP BY LoginID, Department
ORDER BY LoginID, Department DESC
关于MySQL 分组依据和计数...我可以进行嵌套分组吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6528749/