3

我有一个 MySQL 表。我把模式放到这个小提琴上。
在我的表中,当用户登录时,我将他/她记录到 mytable 中。在一天内,同一用户可以登录多次。所以我需要知道用户每天登录多少次。

我需要这样的输出:

  • 2013-01-30——
    迈克尔——2次
    ——约翰——4次

  • 2013-01-29
    -- Michael - 1 次
    -- John - 1 次
    -- Mary - 1 次
    -- Dean - 1 次

  • 2013-01-28——
    迈克尔——3次
    ——玛丽——1次

我试过这个:

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

但它给了我这个:
- 2013-01-30 - Michael - 6 次
- 2013-01-29 - John- 4 次
- 2013-01-28 - Michael - 6 次

你能推荐一个查询吗?

4

3 回答 3

7

只需将用户名添加到您的GROUP BY条款。

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

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

于 2013-01-30T21:13:48.853 回答
2

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

于 2013-01-30T21:15:48.677 回答
1

Group by username也应该。

试试这个

   SELECT COUNT(*) AS times, username, date
  FROM mytable group by date,username ORDER BY date DESC

SQL 小提琴演示

于 2013-01-30T21:15:21.343 回答