Ms access 执行不包含指定聚合函数错误消息的查询

Ms access 执行不包含指定聚合函数错误消息的查询,ms-access,Ms Access,我有以下查询返回错误消息“您试图执行不包含指定表达式的查询” 现在,如果我在GROUPBY子句中包含o.ea\u guid和o.object\u类型,则不会返回任何结果 我做错了什么?计数(o.name)是一个集合;其他属性则不是。如果要显示非聚合,必须将其放入GROUPBY子句中。这将为CLASSGUID、CLASSTYPE和NAME三个字段的每个唯一组合提供行数 SELECT o.ea_guid as CLASSGUID, o.object_type as CLASSTY

我有以下查询返回错误消息
“您试图执行不包含指定表达式的查询”

现在,如果我在
GROUPBY
子句中包含o.ea\u guid和o.object\u类型,则不会返回任何结果

我做错了什么?

计数(o.name)是一个集合;其他属性则不是。如果要显示非聚合,必须将其放入GROUPBY子句中。这将为CLASSGUID、CLASSTYPE和NAME三个字段的每个唯一组合提供行数

SELECT 
    o.ea_guid as CLASSGUID, 
    o.object_type as CLASSTYPE,
    o.name as NAME, 
    COUNT(*) as NameCount
FROM 
    t_object as o
GROUP BY 
    o.ea_guid, 
    o.object_type,
    o.name

HAVING 
    (COUNT(*)>1)

这可能不是你想要的

查询有两个错误:

o.ea_guid as CLASSGUID, o.object_type as CLASSTYPE 
这意味着结果将被引用到企业架构师模型中的特定工件,因此您不能在企业架构师的拒绝查询中使用它。使用:

SELECT o.name, COUNT(o.name) as NameCount
FROM t_object as o
GROUP BY o.name
HAVING (COUNT(o.name)>1)
或所有选定的房型都应分组:

SELECT o.ea_guid as CLASSGUID, o.object_type as CLASSTYPE, o.name, COUNT(o.name) as NameCount
FROM t_object as o
GROUP BY o.ea_guid , o.object_type , o.name
HAVING (COUNT(o.name)>1)

在这种情况下,这似乎很愚蠢,但也不起作用。我收到消息
“您试图执行的查询未将指定的表达式“Name”作为聚合函数的一部分”
。如果我将其包含在
GROUP BY
子句中,则不会返回任何结果。很抱歉,有一个输入错误-我做了一个快速更改,但忘记将
o.name
添加到GROUP BY子句中。我现在已经在上面添加了它。你知道为什么会出现这种错误吗?
SELECT o.ea_guid as CLASSGUID, o.object_type as CLASSTYPE, o.name, COUNT(o.name) as NameCount
FROM t_object as o
GROUP BY o.ea_guid , o.object_type , o.name
HAVING (COUNT(o.name)>1)