0

2013 年 10 月に初めて Web サイトにログインした 3 人のユーザーの簡単な表があります。次の表は、各ユーザーの個々のログインを示しています。この場合、MIN ログイン日は最初のログイン日です。

| user | login_date |
  user1    10/3
  user2    10/3
  user1    10/4
  user3    10/14
  user2    10/15
  user3    10/20

そのため、10/3 に初めてログインしたユーザーを見つけるには、

SELECT user FROM table GROUP BY user HAVING MIN(login_date)='10/3';

ただし、出力が 2 の場合、これらのユーザーをカウントするにはどうすればよいでしょうか? login_date='10/3' の一意のユーザーは COUNT 人いますか?

4

2 に答える 2

2

サブクエリを使用できます。

select count(*)
from (SELECT user
      FROM table
      GROUP BY user
      HAVING MIN(login_date) = '10/3'
     ) t

日付定数の形式には、何かが必要です。「2013-10-03」のようなものを考えるかもしれませんが、これはほとんどのデータベースで機能するはずです。

于 2013-11-01T02:16:50.870 に答える
1

どうですか

SELECT count(distinct(user)) FROM table GROUP BY user HAVING MIN(login_date)='10/3';

于 2013-11-01T02:16:27.677 に答える