Solucionar errores de GROUP BY

La tabla siguiente proporciona una lista de mensajes de error de GROUP BY, así como sugerencias para ayudar a resolverlos.

Número de error

Mensaje de error

Cómo resolver el error

102

Sintaxis incorrecta cerca de ','.

Reescriba la consulta de forma que los conjuntos de agrupaciones figuren en la cláusula GROUP BY como parte de una lista GROUPING SETS explícita. Por ejemplo, GROUP BY C1, (C2,…, Cn) producirá este error. Reescriba la consulta como GROUP BY C1, GROUPING SETS( (C2,…, Cn) ) o GROUP BY C1, C2,…, Cn.

130

No puede realizar una función de agregado en una expresión que contiene un agregado o una subconsulta.

Reescriba la consulta de forma que el agregado, la función de agrupación o la subconsulta no aparezca como argumento de otra función de agrupación o agregado.

147

Un agregado no puede aparecer en la cláusula WHERE a menos que esté en una subconsulta contenida en una cláusula HAVING o en una lista de selección y la columna que se agrega sea una referencia exterior.

Elimine la función de agrupación o el agregado de la cláusula WHERE.

157

Un agregado no puede aparecer en la lista SET de una instrucción UPDATE.

Elimine la función de agrupación o agregado de la lista SET de una instrucción UPDATE.

158

Un agregado no puede aparecer en la cláusula OUTPUT.

Retire la función de agrupación o el agregado de la cláusula OUTPUT.

162

Expresión no válida en la cláusula TOP.

Quite la función de agrupación o el agregado de la cláusula TOP.

174

La función GROUPING requiere 1 argumento.

Modifique la lista de argumentos de la función GROUPING() de manera que haya exactamente 1 argumento.

175

Un agregado no puede aparecer en una expresión de columna calculada o restricción CHECK.

Elimine la función de agrupación o agregado de las columnas calculadas y restricciones CHECK de la instrucción DDL.

189

La función GROUPING_ID requiere un número de argumentos entre 0 y 32.

Reduzca el número de argumentos para la función GROUPING_ID() a 32 o menos.

1015

Un agregado no puede aparecer en una cláusula ON a menos que se encuentre en una subconsulta contenida en una cláusula HAVING o en una lista de selección y la columna que se agrega sea una referencia exterior.

Elimine la función de agrupación o agregado de la cláusula ON.

1028

Las opciones ROLLUP, CUBE y GROUPING SETS no están permitidas en la cláusula GROUP BY ALL.

Reescriba la consulta de forma que la opción GROUP BY ALL no contenga las palabras clave GROUPING SETS, CUBE, ROLLUP, WITH CUBE o WITH ROLLUP.

4101

Los agregados en el lado derecho de un APPLY no pueden hacer referencia a las columnas del lado izquierdo.

Retire la función de agrupación o el agregado del lado derecho de la cláusula APPLY.

4113

GROUPING | GROUPING_ID no es una función de selección de ventana válida y no se puede utilizar con la cláusula OVER.

Reescriba la consulta de forma que las funciones GROUPING() o GROUPING_ID() no se utilicen con una cláusula OVER.

4142

Los agregados no están permitidos en la lista RECEIVE.

Elimine la función de agrupación o el agregado de la lista RECEIVE.

5310

Los agregados no se permiten en la lista VALUES de una instrucción INSERT.

Elimine la función de agrupación o agregado de la lista VALUES de una instrucción INSERT.

8161

El argumento [n] de la función [GROUPING | GROUPING_ID] no coincide con ninguna de las expresiones de la cláusula GROUP BY.

Asegúrese de que cada argumento de la función GROUPING o GROUPING_ID coincide con un elemento de agrupación de la cláusula GROUP BY y de que todos los argumentos de la función GROUPING o GROUPING_ID tienen el mismo ámbito.

En el ejemplo siguiente, la referencia a la tabla T (de la consulta principal) en la subconsulta producirá un error.

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

No se puede crear el índice clúster <indexname> en la vista <viewname> porque la clave de índice incluye columnas que no están en la cláusula GROUP BY. Considere la eliminación de la clave de índice de las columnas que no estén en la cláusula GROUP BY.

No se puede crear una vista indizada cuando la definición de vista contiene una cláusula GROUP BY que sólo contiene el elemento (), total general.

10119

No se puede crear el índice clúster <indexname> en la vista <viewname> porque contiene un operador CUBE, ROLLUP o GROUPING SETS. Considere la opción de no indizar esta vista.

No se puede crear una vista indizada cuando la definición de la vista contiene una cláusula GROUP BY general.

10702

Las opciones WITH CUBE y WITH ROLLUP no están permitidas en la especificación de ROLLUP, CUBE o GROUPING SETS.

Reescriba la consulta de manera que no haya ninguna combinación de las palabras clave no compatibles con ISO WITH CUBE o WITH ROLLUP y las palabras clave compatibles con ISO GROUPING SETS , CUBE o ROLLUP.

10703

Demasiados conjuntos de agrupamiento . El número máximo es 4096.

Reduzca el número de conjuntos de agrupamiento en una cláusula GROUP BY general a 4096 o menos.

10706

Se especifican demasiadas expresiones en la cláusula GROUP BY. El número máximo es 32 cuando se especifican conjuntos de agrupamiento.

Reduzca el número de elementos de agrupamiento distintos en una cláusula GROUP BY general a 32 o menos.

10708

Las construcciones de agrupamiento CUBE() y ROLLUP() no se permiten en el modo de compatibilidad actual. Sólo se permiten en el modo 100 o superior.

No se puede utilizar CUBE() y ROLLUP() en el modo de compatibilidad 90. Utilice la sintaxis WITH CUBE, WITH ROLLUP o GROUPING SETS.