0

在 SQL Server 2K8 R2 中,我有一个使用这些列跟踪用户活动的表(表名为 UserActivity):

userFK: nvarchar(35)   // "user1", "user2", "user3", etc
action: nvarchar(35)   // "login", "logout", "vote", "post", "comment", etc

我想运行一个查询来获取每个用户登录的次数(其中 action = “login”),它返回:

userFK      ctActions
-------     ---------
"user1"         50
"user2"         45
"user3"         29

我认为可行的查询是这样的:

SELECT UserActivity.userFK, COUNT(*) AS ctActions
FROM UserActivity 
WHERE [action] = 'login'

但是 SQL Server 给了我错误:

选择列表中的“UserActivity.userFK”列无效,因为它既不包含在聚合函数中,也不包含在 GROUP BY 子句中。

我究竟做错了什么?

4

2 回答 2

3

包含UserActivity.userFK在 group by 子句中,因为您不在聚合函数中使用此列:

SELECT UserActivity.userFK, COUNT(*) AS ctActions
FROM UserActivity 
WHERE [action] = 'login'
GROUP BY UserActivity.userFK
于 2013-09-11T07:31:12.523 回答
0

通过 userfk 从 UserActivity 组中选择 *

于 2014-03-06T04:50:53.283 回答