SQL唯一查询 - 需要帮助

时间:2010-06-23 16:50:49

标签: sql unique

需要一些可能是非常基本的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 

谢谢!

4 个答案:

答案 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 ....