MySQL 分组依据和计数...我可以进行嵌套分组吗?

标签 mysql sql aggregate-functions

我有一个名为 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/

相关文章:

sql - 单个查询中多个 SQL 集合运算符的作用是什么?

sql - 您将如何使用 SQL 或 R 库 sqldf 执行此任务?

sql - 使用不同的 WHERE 子句获取聚合的子查询

sql - 我可以在 MSSQL 的 WHERE 子句中使用 SUM 函数的结果吗?

php - 在 MYSQL 中使用 SELECT MAX(id) 而不是在 PHP 中使用 mysql_insert_id() 有多糟糕?

mysql - 从 mysql order by IN 子句获取结果

sql - "With"关键字在 SQL 中是如何工作的?

mysql order by 后跟 group by

java - 将基于java spring的web应用程序上传到真实服务器的过程是什么,以及如何对服务器使用负载均衡?

SQL Server - 具有 2 个组变量和 2 个聚合计算的动态透视