3

MySQL テーブルがあります。私はスキーマをこのフィドルに入れました。
私のテーブルでは、ユーザーがログインすると、彼/彼女を mytable に記録します。1 日に同じユーザーが複数回ログインできます。したがって、ユーザーが毎日何回ログインしたかを知る必要があります。

次のような出力が必要です。

  • 2013-01-30
    -- マイケル - 2 回
    -- ジョン - 4 回

  • 2013-01-29
    -- マイケル - 1 回
    -- ジョン - 1 回
    -- メアリー - 1 回
    -- ディーン - 1 回

  • 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 回

これについてのクエリをお勧めできますか?

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 に答える