基本上我在SQL中有一个LoginHistory表。 我想执行一个命令,该命令将返回特定日期的登录次数。 但是如果用户多次登录,我只想将其记录为一个登录。
所以我可以看到有一天登录了多少,而不是当天登录了多少次。
到目前为止,我有这个......
select count(username) as TotalUserCountOnTheDay
from dbo.LoginHistory
where datediff(day,LoginDate, '2014-11-19') = 0
但是这会返回登录或所有用户的数量。 结果是15行,应该是4
我查询的表格:
答案 0 :(得分:1)
您想要计算不同的用户:
select count(distinct username) as TotalUserCountOnTheDay
from dbo.LoginHistory
where datediff(day,LoginDate, '2014-11-19') = 0;
答案 1 :(得分:0)
在这种情况下,也许 distinct 关键字可以帮助您。
答案 2 :(得分:0)
请使用此
select count(username) as TotalUserCountOnTheDay
from dbo.LoginHistory
where datediff(day,LoginDate, '2014-11-19') = 0
GROUP BY username;
OR
select count(distinct username) as TotalUserCountOnTheDay
from dbo.LoginHistory
where datediff(day,LoginDate, '2014-11-19') = 0;
答案 3 :(得分:0)
您可以使用GROUP BY
。实施例
SELECT COUNT(l.username) AS TotalUserCountOnTheDay
FROM dbo.LoginHistory AS l
WHERE DATEDIFF(day, l.LoginDate, '2014-11-19') = 0
GROUP BY l.username
或者
SELECT COUNT(l.username) AS TotalUserCountOnTheDay
FROM dbo.LoginHistory AS l
WHERE l.LoginDate = '2014-11-19'
GROUP BY l.username
它应该返回所选日期的每个用户名登录的计数。