使用Group By时出现SQL错误:每个GROUP BY表达式必须至少包含一个不是外部引用的列

Mel*_*Mel 5 sql group-by

在做我认为最简单的查询之一时,我一直在收到这个错误!我看到其他人也遇到了问题,我已经查看了我看过的所有解决方案,但他们涉及的问题更多,所以我很难找出问题所在.我做了一个小桌子来说明我的问题.

表名:grouptest

id  name
1   Mel
2   Lucy
3   Mandy
4   Mel
5   Mandy
6   Mel
Run Code Online (Sandbox Code Playgroud)

我想知道每个名字出现多少次,以生成如下表:

3 Mel
2 Mandy
1 Lucy
Run Code Online (Sandbox Code Playgroud)

这是我认为应该工作的查询:

SELECT Count(id), Name
FROM groupbytest
GROUP BY 'Name'
Run Code Online (Sandbox Code Playgroud)

我收到错误:

每个GROUP BY表达式必须至少包含一个不是外部引用的列.

救命!

Tar*_*ryn 6

您在名称字段周围有引号,这是不需要的.

SELECT Count(id), Name
FROM grouptest
GROUP BY Name
Run Code Online (Sandbox Code Playgroud)

根据您的意见,您需要将CAST您的Name列:

SELECT Count(id), Cast(Name as Varchar(max)) Name
FROM grouptest
GROUP BY Cast(Name as Varchar(max))
Run Code Online (Sandbox Code Playgroud)


Lam*_*mak 5

失去'GROUP BY:

SELECT Count(id), Name 
FROM groupbytest 
GROUP BY Name
Run Code Online (Sandbox Code Playgroud)

如果name是a text,则需要将其强制转换VARCHAR,但您可能会截断列.

SELECT Count(id), CAST(Name AS VARCHAR(8000)) AS Name
FROM groupbytest 
GROUP BY CAST(Name AS VARCHAR(8000))
Run Code Online (Sandbox Code Playgroud)