我有一个名为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 0217211 sdavis会计
102162011 sdavis会计
202132011 sdavis会计
102011 sdavis会计
5 02092011 sdavis会计
4 02082011 sdavis会计
103182011德莫利斯营销
10392011德莫利斯营销
6 04142011 cchan技术
103282011 cchan技术
203262011 cchan技术
2 03112011 cchan技术
103102011 cchan技术
它给出了他们每一天登录的次数。我想要的是每天只统计一次,并将每个人的所有天数与他们登录的天数以及最后一天一起进行分组。使用上面的数据样本,我想要的输出应该是
6 0217211 sdavis会计
203182011德莫利斯营销
5 04142011 cchan技术
所以我想以某种方式将上述分组结果按第二组标准分组。。。?

最佳答案

试试这个:

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

10-04 15:54