在我的users
表中,我需要按用户名长度计算用户数。
例如:
我创建了MSSQL查询:
SELECT
TOP 1000
LEN(nick) as 'title',
Count(*)
FROM [userstable]
WITH(NOLOCK)
GROUP BY title
运行后我看到下一个问题:
列'userstable.Nick'在选择列表中无效,因为它不包含在聚合函数或GROUP BY子句中。
有人可以解释原因吗?
答案 0 :(得分:4)
Group by
在Select
之前进行了逻辑处理,因此您无法在那里使用别名
SELECT TOP 1000 Len(nick) AS 'title',
Count(*)
FROM [userstable] WITH(NOLOCK)
GROUP BY Len(nick)
另请阅读此文章,了解NOLOCK
Bad habits : Putting NOLOCK everywhere