MSSQL:计算用户名长度
在我的MSSQL:计算用户名长度,sql,sql-server,Sql,Sql Server,在我的users表中,我需要按用户名长度计算用户数。 例如: 200个用户的名称长度为1个字符 500个用户的名称长度为2个字符 1500个用户的名称长度为3个字符 我创建了MSSQL查询: SELECT TOP 1000 LEN(nick) as 'title', Count(*) FROM [userstable] WITH(NOLOCK) GROUP BY title 运行后,我看到下一个问题: 列“userstable.Nick”在选择列表中无效,因为它不包含在聚合
users
表中,我需要按用户名长度计算用户数。
例如:
- 200个用户的名称长度为1个字符
- 500个用户的名称长度为2个字符
- 1500个用户的名称长度为3个字符
SELECT
TOP 1000
LEN(nick) as 'title',
Count(*)
FROM [userstable]
WITH(NOLOCK)
GROUP BY title
运行后,我看到下一个问题:
列“userstable.Nick”在选择列表中无效,因为它不包含在聚合函数或GROUP BY子句中
有人能解释一下原因吗?
分组依据
是在选择
之前进行逻辑处理的,因此您不能在那里使用别名
SELECT TOP 1000 Len(nick) AS 'title',
Count(*)
FROM [userstable] WITH(NOLOCK)
GROUP BY Len(nick)
另外,阅读本文了解关于
NOLOCK
您不能在组中使用别名的信息