Risoluzione dei problemi relativi agli errori in GROUP BY

Nella tabella seguente è incluso un elenco di messaggi di errore relativi alla clausola GROUP BY e vengono forniti suggerimenti che consentono di risolverli.

Numero di errore

Messaggio di errore

Modalità di risoluzione

102

Sintassi non corretta in prossimità di ','.

Riscrivere la query in modo da specificare i set di raggruppamenti nella clausola GROUP BY come parte di un elenco GROUPING SETS esplicito. Ad esempio, GROUP BY C1, (C2,…, Cn) genera questo errore. Riscrivere la query come GROUP BY C1, GROUPING SETS( (C2,…, Cn) ) o GROUP BY C1, C2,…, Cn.

130

Impossibile eseguire una funzione di aggregazione su un'espressione contenente un'aggregazione o una sottoquery.

Riscrivere la query in modo tale che una sottoquery o un'aggregazione della funzione di raggruppamento non sia presente come un argomento di un'altra funzione di raggruppamento o aggregazione.

147

È possibile specificare un'aggregazione in una clausola WHERE solo se è inclusa in una sottoquery di una clausola HAVING o in un elenco di selezione e la colonna da aggregare è un riferimento esterno.

Rimuovere la funzione di raggruppamento o l'aggregazione dalla clausola WHERE.

157

Impossibile specificare un'aggregazione nell'elenco SET di un'istruzione UPDATE.

Rimuovere la funzione di raggruppamento o l'aggregazione dall'elenco SET di un'istruzione UPDATE.

158

Impossibile specificare un'aggregazione nella clausola OUTPUT.

Rimuovere la funzione di raggruppamento o l'aggregazione dalla clausola OUTPUT.

162

La clausola TOP include un'espressione non valida.

Rimuovere la funzione di raggruppamento o l'aggregazione dalla clausola TOP.

174

La funzione GROUPING richiede 1 argomenti.

Modificare l'elenco di argomenti per la funzione GROUPING () in modo da comprendere esattamente 1 argomento.

175

Impossibile specificare un'aggregazione nell'espressione di una colonna calcolata o in un vincolo CHECK.

Rimuovere la funzione di raggruppamento o l'aggregazione dalle colonne calcolate e dai vincoli CHECK nell'istruzione DDL.

189

La funzione GROUPING_ID richiede da 0 a 32 argomenti.

Ridurre il numero di argomenti per la funzione GROUPING_ID () a 32 o meno.

1015

Un'aggregazione può essere inclusa in una clausola ON solo se fa parte di una sottoquery di una clausola HAVING o di un elenco di selezione e la colonna da aggregare è un riferimento esterno.

Rimuovere la funzione di raggruppamento o l'aggregazione dalla clausola ON.

1028

Le opzioni CUBE, ROLLUP e GROUPING SETS non sono consentite in una clausola GROUP BY ALL.

Riscrivere la query in modo da non specificare l'opzione GROUP BY ALL con le parole chiave GROUPING SETS, CUBE, ROLLUP, WITH CUBE o WITH ROLLUP.

4101

Le aggregazioni specificate a destra di APPLY non possono fare riferimento alle colonne specificate a sinistra.

Rimuovere la funzione di raggruppamento o l'aggregazione specificata a destra della clausola APPLY.

4113

GROUPING | GROUPING_ID non è una funzione finestra valida e non può pertanto essere utilizzata con la clausola OVER.

Riscrivere la query in modo da non utilizzare la funzione GROUPING () o GROUPING_ID () con una clausola OVER.

4142

Nell'elenco RECEIVE non sono consentite aggregazioni.

Rimuovere la funzione di raggruppamento o l'aggregazione dalla clausola RECEIVE.

5310

Aggregazioni non consentite nell'elenco VALUES di un'istruzione INSERT.

Rimuovere la funzione di raggruppamento o l'aggregazione dall'elenco VALUES di un'istruzione INSERT.

8161

L'argomento [n] della funzione [GROUPING | GROUPING_ID] non corrisponde ad alcuna espressione della clausola GROUP BY.

Verificare che ciascun argomento della funzione GROUPING o GROUPING_ID corrisponda a un elemento di raggruppamento nella clausola GROUP BY e che tutti gli argomenti della funzione GROUPING o GROUPING_ID abbiano lo stesso ambito.

Nell'esempio seguente, il riferimento alla tabella T (dalla query principale) nella sottoquery genera un errore.

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

Impossibile creare l'indice cluster <indexname> sulla vista <viewname> perché la chiave dell'indice include colonne che non sono comprese nella clausola GROUP BY. Provare a eliminare dalla chiave dell'indice le colonne che non sono comprese nella clausola GROUP BY.

Non è possibile creare una vista indicizzata quando nella definizione della vista è presente una clausola GROUP BY che contiene solo l'elemento (), totale complessivo.

10119

Impossibile creare <indexname> sulla vista <viewname> perché contiene un operatore CUBE, ROLLUP o GROUPING SETS. Provare a non indicizzare la vista.

Non è possibile creare una vista indicizzata quando la definizione della vista contiene una clausola GROUP BY generale.

10702

Le opzioni WITH CUBE e WITH ROLLUP non sono consentite con una specifica ROLLUP, CUBE o GROUPING SETS.

Riscrivere la query in modo che non siano presenti combinazioni di parole chiave WITH CUBE o WITH ROLLUP non ISO e di parole chiave GROUPING SETS, CUBE o ROLLUP compatibili ISO.

10703

Troppi set di raggruppamenti. Il numero massimo è 4096.

Ridurre il numero di set di raggruppamenti in una clausola GROUP BY generale a 4096 o meno.

10706

Troppe espressioni specificate nella clausola GROUP BY. Il numero massimo è 32 quando vengono forniti set di raggruppamenti.

Ridurre il numero di elementi di raggruppamento distinti in una clausola GROUP BY generale a 32 o meno.

10708

I costrutti di raggruppamento CUBE () e ROLLUP () non sono consentiti nella modalità compatibilità corrente. Sono consentiti solo in modalità 100 o superiore.

Non è possibile utilizzare CUBE () e ROLLUP () in modalità di compatibilità 90. Utilizzare la sintassi WITH CUBE, WITH ROLLUP o GROUPING SETS.