我有一个MySQL表。我把架构to this fiddle 在我的表中,当用户登录时,我将他/她记录到mytable。在同一天,同一个用户可以多次登录。所以我需要知道用户每天登录的次数。
我需要这样的输出:
2013年1月30日
- 迈克尔 - 2次
- 约翰 - 4次
2013年1月29日
- 迈克尔 - 1次
- 约翰 - 1次
- 玛丽 - 1次
- 迪恩 - 一次
2013年1月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次
您能为此推荐一个查询吗?
答案 0 :(得分:7)
只需在GROUP BY
子句中添加用户名。
SELECT COUNT(*) AS "times", username, date
FROM mytable
GROUP BY date, username ORDER BY date DESC
答案 1 :(得分:2)
选择日期,用户名,COUNT(1)AS“次” FROM mytable GROUP BY日期,用户名ORDER BY日期DESC
答案 2 :(得分:1)
你也应该Group by username
。
试试这个
SELECT COUNT(*) AS times, username, date
FROM mytable group by date,username ORDER BY date DESC