GROUP BY 错误故障排除
下表列出了 GROUP BY 错误消息以及帮助解决错误的建议。
错误号 |
错误消息 |
如何解决错误 |
---|---|---|
102 |
“,”附近有语法错误。 |
重写查询,以便分组集作为显式 GROUPING SETS 列表的一部分显示在 GROUP BY 子句中。例如,GROUP BY C1, (C2,…, Cn) 将会引发此错误。将该查询重写为 GROUP BY C1, GROUPING SETS( ((C2,…, Cn) ) 或 GROUP BY C1, (C2,…, Cn。 |
130 |
不能对包含聚合或子查询的表达式执行聚合函数。 |
重写查询,以便分组函数聚合或子查询不会显示为另一分组函数或聚合的参数。 |
147 |
聚合不应出现在 WHERE 子句中,除非该聚合位于 HAVING 子句或选择列表所包含的子查询中,并且要对其进行聚合的列是外部引用。 |
从 WHERE 子句中删除该分组函数或聚合。 |
157 |
聚合不应出现在 UPDATE 语句的集合列表中。 |
从 UPDATE 语句的集合列表中删除该分组函数或聚合。 |
158 |
聚合不应出现在 OUTPUT 子句中。 |
从 OUTPUT 子句中删除该分组函数或聚合。 |
162 |
TOP 子句中的表达式无效。 |
从 TOP 子句中删除该分组函数或聚合。 |
174 |
GROUPING 函数要求有 1 个参数。 |
修改 GROUPING () 函数的参数列表,以便刚好有 1 个参数。 |
175 |
聚合不应出现在计算列表达式或检查约束中。 |
从 DDL 语句中的计算列或 CHECK 约束中删除该分组函数或聚合。 |
189 |
GROUPING_ID 函数要求有 0 至 32 个参数。 |
将 GROUPING_ID () 函数的参数个数减少为 32 个或更少。 |
1015 |
聚合不能出现在 ON 子句中,除非该子句位于 HAVING 子句或选择列表所包含的子查询中,并且所聚合的列是外部引用。 |
从 ON 子句中删除该分组函数或聚合。 |
1028 |
在 GROUP BY ALL 子句中,不允许使用 CUBE、ROLLUP 和 GROUPING SETS 构造。 |
重写查询,以便不使用 GROUPING SETS、CUBE、ROLLUP、WITH CUBE 或 WITH ROLLUP 关键字指定 GROUP BY ALL 选项。 |
4101 |
位于 APPLY 右侧的聚合无法引用左侧的列。 |
从 APPLY 子句的右侧删除该分组函数或聚合。 |
4113 |
GROUPING | GROUPING_ID 不是有效的开窗函数,无法与 OVER 子句一起使用。 |
重写查询,以便 GROUPING () 或 GROUPING_ID () 函数不与 OVER 子句一起使用。 |
4142 |
RECEIVE 列表中不允许有聚合。 |
从 RECEIVE 列表中删除分组函数或聚合。 |
5310 |
INSERT 语句的 VALUES 列表中不允许聚合。 |
从 INSERT 语句的 VALUES 列表中删除该分组函数或聚合。 |
8161 |
[GROUPING | GROUPING_ID] 函数的参数 [n] 与 GROUP BY 子句中的任何表达式都不匹配。 |
检查以确保 GROUPING 或 GROUPING_ID 函数的每个参数均与 GROUP BY 子句中的分组元素相匹配,并且 GROUPING 或 GROUPING_ID 函数的所有元素的作用域均相同。 在下例中,子查询中对表 T(来自主查询)的引用将引发错误。
|
8661 |
无法对视图 <视图名称> 创建聚集索引 <索引名称>,因为索引键包含不在 GROUP BY 子句中的列。请考虑从索引键中消除不在 GROUP BY 子句中的列。 |
当视图定义包含仅含有总计元素 () 的 GROUP BY 子句时,无法创建索引视图。 |
10119 |
无法对视图 <视图名称> 创建聚集索引 <索引名称>,因为其中包含 CUBE、ROLLUP 或 GROUPING SETS 运算符。请考虑不对此视图进行索引。 |
当视图定义包含一般 GROUP BY 子句时,无法创建索引视图。 |
10702 |
WITH CUBE 和 WITH ROLLUP 选项不允许与 ROLLUP、CUBE 或 GROUPING SETS 规范一起使用。 |
重写查询,以便不存在非 ISO WITH CUBE 或 WITH ROLLUP 关键字与 ISO 兼容 GROUPING SETS、CUBE 或 ROLLUP 关键字的组合。 |
10703 |
分组集太多。最大数目为 4096。 |
将一般 GROUP BY 子句中分组集的个数减少为 4096 个或更少。 |
10706 |
GROUP BY 子句中指定的表达式太多。当提供了分组集时,最大数目为 32。 |
将一般 GROUP BY 子句中的非重复分组元素减少为 32 个或更少。 |
10708 |
当前兼容模式下不允许使用 CUBE() 和 ROLLUP() 分组构造。只有 100 或更高模式下才允许使用这些构造。 |
不能在 90 兼容模式下使用 CUBE () 和 ROLLUP ()。使用 WITH CUBE、WITH ROLLUP 或 GROUPING SETS 语法。 |