MySQL用于分组一列并从另一列获取子组

我有一个MySQL表.我把模式to this fiddle.
在我的表中,当用户登录时,我将他/她记录到mytable.在同一天,同一个用户可以多次登录.所以我需要知道用户每天登录的次数.

我需要这样的输出:

> 2013-01-30
– 迈克尔 – 2次
– 约翰 – 4次
> 2013-01-29
– 迈克尔 – 一次
– 约翰 – 一次
– 玛丽 – 一次
– 迪恩 – 一次
> 2013-01-28
– 迈克尔 – 3次
– 玛丽 – 1次

我试过这个:

SELECT COUNT(*) AS "times", username, date
FROM mytable GROUP BY date ORDER BY date DESC

但它给了我这个:
– 2013-01-30 – 迈克尔 – 6次
– 2013-01-29 – 约翰 – 4次
– 2013-01-28 – 迈克尔 – 6次

你能推荐一个查询吗?

最佳答案
只需在GROUP BY子句中添加用户名即可.

SELECT COUNT(*) AS "times", username, date
FROM mytable 
GROUP BY date, username ORDER BY date DESC

http://sqlfiddle.com/#!2/b5701/11

转载注明原文:MySQL用于分组一列并从另一列获取子组 - 代码日志