这是我的查询:
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
等等..
尚未在此数据库中写入每条记录。