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

集計が HAVING 句または選択リスト内のサブクエリにある場合、および集計する列が外部参照の場合にだけ、WHERE 句に集計を含めることができます。

WHERE 句からグループ化関数または集計を削除します。

157

UPDATE ステートメントの SET リストには集計を含めることはできません。

UPDATE ステートメントの SET リストからグループ化関数、または集計を削除します。

158

OUTPUT 句には集計を含めることはできません。

グループ化関数、または集計を OUTPUT 句から削除します。

162

TOP 句内の式が無効です。

グループ化関数、または集計を TOP 句から削除します。

174

GROUPING 関数には 1 つの引数が必要です。

引数が 1 つになるように GROUPING () 関数の引数リストを変更します。

175

計算列の式またはチェック制約には集計を含めることはできません。

DDL ステートメントの計算列式および CHECK 制約から、グループ化関数または集計を削除します。

189

GROUPING_ID 関数には 0 ~ 32 個の引数が必要です。

GROUPING_ID () 関数の引数の数を 32 個以下に減らします。

1015

HAVING 句または選択リストに含まれるサブクエリの場合、および集計される列が外部参照の場合にだけ、ON 句に集計を含めることができます。

グループ化関数または集計を 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
)
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

ビュー <ビュー名> にクラスタ化インデックス <インデックス名> を作成できません。GROUP BY 句に存在しない列がインデックス キーに含まれています。GROUP BY 句に存在しない列をインデックス キーから削除することを検討してください。

ビュー定義の GROUP BY 句に () 要素 (総計) のみが含まれている場合は、インデックス付きビューを作成できません。

10119

ビュー <ビュー名> にクラスタ化インデックス <インデックス名> を作成できません。ビューには CUBE 演算子、ROLLUP 演算子、または GROUPING SETS 演算子が含まれています。このビューにインデックスを設定しないことを検討してください。

ビュー定義に一般的な GROUP BY 句が含まれる場合、インデックス付きビューを作成することはできません。

10702

ROLLUP、CUBE、または GROUPING SETS の仕様では、WITH CUBE オプションおよび WITH ROLLUP オプションは許可されていません。

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 以上の場合だけです。

CUBE () および ROLLUP () は 90 互換モードでは使用できません。WITH CUBE、WITH ROLLUP、または GROUPING SETS 構文を使用してください。