在 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 子句中。
我究竟做错了什么?