這是我的查詢:爲什麼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