这是我的查询:为什么Count(*)返回意外数字?
Select COUNT(*)
From
Users u
Inner Join
UsersLoginHistory uh On u.UserID = uh.UserID
Where
1 = 1
And
u.AccountID = 37
Group By u.UserID
我想怎么能得到的是Count(*)
应该u.UserId分组后返回一个数字。但是在组创建之前它会返回Count(*)
。
这样我就可以把上面的查询为:
Select COUNT(*)
From (
Select u.Username
From
Users u
Inner Join
UsersLoginHistory uh On u.UserID = uh.UserID
Where
1 = 1
And
u.AccountID = 37
Group By u.UserID
) v
但我需要找出原因是Count(*)
返回记录一组之前由我如何解决一日查询本身。
编辑:样本记录
用户表
UserId Username
102 tom.kaufmann
UserLoginHistory表
UsersLoginHistoryID UserID LoginDateTime LogoutDateTime IPAddress
1 102 2012-09-28 01:16:00 NULL 115.118.71.248
2 102 2012-09-28 01:29:00 2012-09-28 01:29:00 127.0.0.1
3 102 2012-09-28 01:32:00 2012-09-28 01:32:00 127.0.0.1
4 102 2012-09-28 01:41:00 NULL 115.118.71.248
5 102 2012-09-28 01:43:00 2012-09-28 07:04:00 115.118.71.248
等..
有没有在这个创作的每一个记录D B。
请发布重现问题的示例数据。您的第一个查询应该可以工您的第二个查询返回组数。 –
@Martin:示例记录现在在那里。 – Jack