Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MSSQL:计算用户名长度_Sql_Sql Server - Fatal编程技术网

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个字符
我创建了MSSQL查询:

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

您不能在组中使用别名的信息