Solucionando problemas de erros de GROUP BY

A tabela a seguir fornece uma lista de mensagens de erro de GROUP BY e sugestões para ajudar a resolvê-los.

Número do erro

Mensagem do erro

Como resolver o erro

102

Sintaxe incorreta próximo a ','.

Reescreva a consulta de forma que os conjuntos de agrupamentos apareçam na cláusula GROUP BY como parte de uma lista GROUPING SETS explícita. Por exemplo, GROUP BY C1, (C2,…, Cn) provocará este erro. Reescreva a consulta como GROUP BY C1, GROUPING SETS( (C2,…, Cn) ) ou GROUP BY C1, C2,…, Cn.

130

Não é possível executar uma função de agregação em uma expressão que contenha um agregado ou uma subconsulta.

Reescreva a consulta de forma que uma agregação de função de agrupamento ou subconsulta, não apareça como argumento de outra função de agrupamento ou agregação.

147

Um agregado não pode aparecer na cláusula WHERE a menos que esteja em uma subconsulta contida em uma cláusula HAVING ou uma lista de seleção e que a coluna que está sendo agregada seja uma referência externa.

Remova a função de agrupamento ou agregue a partir da cláusula WHERE.

157

Um agregado pode não aparecer na lista de conjuntos de uma instrução UPDATE.

Remova a função de agrupamento ou agregue a partir da lista definida de uma instrução UPDATE.

158

Um agregado não pode aparecer na cláusula OUTPUT.

Remova a função de agrupamento ou agregue a partir da cláusula OUTPUT.

162

Expressão inválida na cláusula TOP.

Remova a função de agrupamento ou a agregação da cláusula TOP.

174

A função GROUPING requer 1 argumento(s).

Modifique a lista de argumentos da função GROUPING () de modo a haver exatamente 1 argumento.

175

Um agregado pode não aparecer em uma restrição de verificação ou expressão de coluna computada.

Remova a função de agrupamento ou agregue a partir de colunas computadas e restrições CHECK da instrução DDL.

189

A função GROUPING_ID requer de 0 a 32 argumentos.

Reduza o número de argumentos da função GROUPING_ID () para 32 ou menos.

1015

Um agregado não pode aparecer em uma cláusula ON a menos que ele esteja em uma subconsulta contida em uma cláusula HAVING ou uma lista de seleção, e a coluna que está sendo agregada seja uma referência externa.

Remova a função de agrupamento ou agregue a partir da cláusula ON.

1028

As opções CUBE, ROLLUP e GROUPING SETS não são permitidas em uma cláusula GROUP BY ALL.

Reescreva a consulta de forma que a opção GROUP BY ALL não seja especificada com as palavras-chave GROUPING SETS, CUBE, ROLLUP, WITH CUBE e WITH ROLLUP.

4101

Os agregados à direita de um APPLY não podem fazer referência a colunas à esquerda.

Remova a função de agrupamento ou agregue a partir do lado direito da cláusula APPLY.

4113

GROUPING | GROUPING_ID não é uma função em janela válida e não pode ser usada com a cláusula OVER.

Reescreva a consulta de forma que a função GROUPING () ou GROUPING_ID () não seja usada com uma cláusula OVER.

4142

Não são permitidos agregados na lista RECEIVE.

Remova a função de agrupamento ou agregue a partir da lista RECEIVE.

5310

Agregações não são permitidas na lista VALUES de uma instrução INSERT.

Remova a função de agrupamento ou agregue a partir da lista VALUES de uma instrução INSERT.

8161

O argumento da função [GROUPING | GROUPING_ID] não corresponde a nenhuma das expressões na cláusula GROUP BY.

Verifique se cada argumento da função GROUPING ou GROUPING_ID corresponde a um elemento de agrupamento na cláusula GROUP BY e se todos os argumentos da função GROUPING ou GROUPING_ID têm o mesmo escopo.

No exemplo a seguir, a referência à tabela T (da consulta principal) na subconsulta provocará um erro.

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

Não é possível criar o índice clusterizado <nome_do_índice> na exibição <nome_da_exibição> porque a chave de índice inclui colunas que não estão na cláusula GROUP BY. Considere a eliminação das colunas que não estão na cláusula GROUP BY da chave de índice.

Não é possível criar uma exibição indexada quando sua definição contém uma cláusula GROUP BY contendo apenas o elemento (), total geral.

10119

Não é possível criar o índice clusterizado <nome_do_índice> na exibição <nome_da_exibição>, pois ela contém um operador CUBE, ROLLUP ou GROUPING SETS. Considere não indexar essa exibição.

Não é possível criar uma exibição indexada quando sua definição contém uma cláusula GROUP BY geral.

10702

As opções WITH CUBE e WITH ROLLUP não são permitidas com uma especificação ROLLUP, CUBE ou GROUPING SETS.

Reescreva a consulta de forma a não haver combinações das palavras-chave WITH CUBE ou WITH ROLLUP com as palavras-chave GROUPING SETS, CUBE ou ROLLUP compatíveis com ISO.

10703

Há muitos conjuntos de agrupamentos. O número máximo é 4096.

Reduza o número de conjuntos de agrupamentos da cláusula GROUP BY para 4096 ou menos.

10706

Há muitas expressões especificadas na cláusula GROUP BY. O número máximo é 32 quando conjuntos de agrupamentos são fornecidos.

Reduza os elementos de agrupamento distintos da cláusula GROUP BY para 32 ou menos.

10708

As construções de agrupamento CUBE() e ROLLUP() não são permitidas no modo de compatibilidade atual. Elas são permitidas apenas no modo 100 ou superior.

Não é possível usar CUBE () e ROLLUP () em modo de compatibilidade 90. Use a sintaxe WITH CUBE, WITH ROLLUP ou GROUPING SETS.