MSSQL:计算用户名长度

时间:2017-10-02 14:30:45

标签: 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'在选择列表中无效,因为它不包含在聚合函数或GROUP BY子句中。

有人可以解释原因吗?

1 个答案:

答案 0 :(得分:4)

Group bySelect之前进行了逻辑处理,因此您无法在那里使用别名

SELECT TOP 1000 Len(nick) AS 'title',
                Count(*)
FROM   [userstable] WITH(NOLOCK)
GROUP  BY Len(nick) 

另请阅读此文章,了解NOLOCK Bad habits : Putting NOLOCK everywhere