GROUP BY 錯誤疑難排解

下表提供了 GROUP BY 錯誤訊息的清單及解決這些錯誤的建議。

錯誤號碼

錯誤訊息

如何解決錯誤

102

',' 附近的語法錯誤。

重寫查詢,好讓 GROUP BY 子句中的群組集合當做明確 GROUPING SETS 清單的一部分出現。例如,GROUP BY C1, (C2,…, Cn) 將會引發這個錯誤。將查詢重寫為 GROUP BY C1, GROUPING SETS( (C2,…, Cn) ) 或 GROUP BY C1, C2,…, Cn。

130

無法在包含彙總或子查詢的運算式上執行彙總函數。

請重寫查詢,好讓群組函數彙總或子查詢不會以另一個群組函數或彙總的引數形式出現。

147

彙總可能不會出現在 WHERE 子句中,除非它位於 HAVING 子句或 SELECT 清單內所含的子查詢中,而且所彙總的資料行是外部參考。

從 WHERE 子句中移除群組函數或彙總。

157

彙總可能不會出現在 UPDATE 陳述式的 SET 清單中。

從 UPDATE 陳述式的 SET 清單中移除群組函數或彙總。

158

彙總可能不會出現在 OUTPUT 子句中。

從 OUTPUT 子句中移除群組函數或彙總。

162

TOP 子句中的無效運算式。

從 TOP 子句中移除群組函數或彙總。

174

GROUPING 函數需要 1 個引數。

修改 GROUPING () 函數的引數清單,好讓它剛好只有一個引數。

175

彙總可能不會出現在計算資料行運算式或檢查條件約束中。

從計算資料行和 DDL 陳述式中的 CHECK 條件約束內移除除群組函數或彙總。

189

GROUPING_ID 函數需要 0 到 32 個引數。

將 GROUPING_ID () 函數的引數數目減少為 32 個以下 (含)。

1015

彙總不會出現在 ON 子句中,除非它位於 HAVING 子句或 SELECT 清單內所含的子查詢中,而且所彙總的資料行是外部參考。

從 ON 子句中移除群組函數或彙總。

1028

GROUP BY ALL 子句中不允許 CUBE、ROLLUP 和 GROUPING SETS 選項。

重寫查詢,好讓 GROUP BY ALL 選項不指定 GROUPING SETS、CUBE、ROLLUP、WITH CUBE 或 WITH ROLLUP 關鍵字。

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 (來自主要查詢) 的參考將會引發錯誤。

SELECT T.b, SUM(T.x)
FROM T
GROUP BY T.b 
HAVING EXISTS
(SELECT 1
FROM T1
GROUP BY T1.a
HAVING 
GROUPING_ID(T1.a, T.b) = 1
)

8661

無法在檢視 <viewname> 上建立叢集索引 <indexname>,因為此索引鍵包含不在 GROUP BY 子句中的資料行。請考慮從此索引鍵中刪除不在 GROUP BY 子句中的資料行。

當檢視定義包含了只包含 () 總和元素的 GROUP BY 子句時,您將無法建立索引檢視。

10119

無法在檢視 <viewname> 上建立叢集索引 <indexname>,因為它包含了 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 語法。