需要一些可能是非常基本的SQL查询的帮助。我正在尝试选择与特定where子句匹配的唯一记录数。
基本上,我希望找到在日期x和y之间登录的唯一用户数。如果用户在这些日期之间多次登录,则只需计算一次。
数据看起来像这样:
id | user_id | lastLogin
1 | 100 | 2010-06-23 10:00:00
2 | 101 | 2010-06-23 10:05:00
3 | 100 | 2010-06-23 11:00:00
谢谢!
答案 0 :(得分:1)
尝试:
select count(distinct user_id)
from login_table
where lastlogin between @startdatetime and @enddatetime
答案 1 :(得分:1)
这是另一个选择
SELECT COUNT(user_id), user_id, MAX(lastLogin)
FROM login_table
WHERE lastlogin BETWEEN @start AND @end
GROUP BY user_id
这将为您提供登录计数,以及上次登录日期。
答案 2 :(得分:0)
使用Distinct SQL运算符。
实施例
select distinct user_id from UsersLoggedIn where lastLogin >= '2010-06-23 10:00:00' and lastLogin <= '2010-06-23 11:00:00'
您可以将其包含在计数中以获取用户数。
select count(*) from (select distinct user_id from UsersLoggedIn where lastLogin >= '2010-06-23 10:00:00' and lastLogin <= '2010-06-23 11:00:00') x
答案 3 :(得分:0)
您可以执行类似
的操作SELECT COUNT(DISTINCT user_id) FROM table WHERE lastLogin BETWEEN ....