これは私のクエリです:
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(*)
ただし、group by が作成される前に返されます。
したがって、上記のクエリを次のように書き直すことができます。
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
等々..
この DB のすべてのレコードを書き込んでいません。