Résolution des erreurs GROUP BY
Le tableau suivant fournit une liste des messages d'erreur GROUP BY et indique les solutions possibles.
Numéro d'erreur |
Message d'erreur |
Comment résoudre l'erreur |
---|---|---|
102 |
Syntaxe incorrecte près de ','. |
Réécrivez la requête afin que les jeux de regroupements apparaissent dans la clause GROUP BY sous la forme d'une liste GROUPING SETS explicite. Par exemple, GROUP BY C1, (C2,…, Cn) provoquera cette erreur. Réécrivez la requête sous la forme GROUP BY C1, GROUPING SETS( (C2,…, Cn) ) ou GROUP BY C1, C2,…, Cn. |
130 |
Impossible d'effectuer une fonction d'agrégation sur une expression qui contient un agrégat ou une sous-requête. |
Récrivez la requête afin qu'un agrégat de fonction de regroupement, ou une sous-requête n'apparaisse pas sous la forme d’un argument d'une autre fonction de regroupement ou agrégat. |
147 |
Un agrégat ne peut apparaître dans la clause WHERE que s’il est présent dans une sous-requête contenue dans une clause HAVING ou une liste de sélection, et si la colonne en cours de regroupement est une référence externe. |
Supprimez la fonction de regroupement ou l’agrégat de la clause WHERE. |
157 |
Un agrégat ne peut pas apparaître dans la liste de définitions d'une instruction UPDATE. |
Supprimez la fonction de regroupement ou l’agrégat de la liste de définitions d'une instruction UPDATE. |
158 |
Un agrégat ne peut pas apparaître dans la clause OUTPUT. |
Supprimez la fonction de regroupement ou l’agrégat de la clause OUTPUT. |
162 |
Expression non valide dans la clause TOP. |
Supprimez la fonction de regroupement ou l'agrégat de la clause TOP. |
174 |
La fonction GROUPING requiert 1 argument. |
Modifiez la liste d'arguments de la fonction GROUPING () afin qu’il y ait exactement 1 argument. |
175 |
Un agrégat ne peut pas apparaître dans une expression de colonne calculée ou contrainte CHECK. |
Supprimez la fonction de regroupement ou l’agrégat des colonnes calculées et contraintes CHECK dans l'instruction DDL. |
189 |
La fonction GROUPING_ID nécessite de 0 à 32 arguments. |
Ramenez le nombre d'arguments pour la fonction GROUPING_ID () à 32 ou moins. |
1015 |
Un agrégat ne peut apparaître dans une clause ON que s’il est présent dans une sous-requête contenue dans une clause HAVING ou une liste de sélection, et si la colonne en cours de regroupement est une référence externe. |
Supprimez la fonction de regroupement ou l’agrégat de la clause ON. |
1028 |
Les options CUBE, ROLLUP et GROUPING SETS ne sont pas autorisées dans une clause GROUP BY ALL. |
Réécrivez la requête afin que l'option GROUP BY ALL ne comporte pas les mots clés GROUPING SETS, CUBE, ROLLUP, WITH CUBE, ou WITH ROLLUP. |
4101 |
Les agrégats situés à droite d’une clause APPLY ne peuvent pas référencer des colonnes du côté gauche. |
Supprimez la fonction de regroupement ou l’agrégat du côté droit de la clause APPLY. |
4113 |
GROUPING | GROUPING_ID n'est pas une fonction de fenêtrage valide et ne peut pas être utilisé avec la clause OVER. |
Réécrivez la requête afin que la fonction GROUPING() ou GROUPING_ID () ne soit pas utilisée avec une clause OVER. |
4142 |
Les agrégats ne sont pas autorisés dans la liste RECEIVE. |
Supprimez la fonction de regroupement ou l’agrégat de la liste RECEIVE. |
5310 |
Les agrégats ne sont pas autorisés dans la liste VALUES d'une instruction INSERT. |
Supprimez la fonction de regroupement ou l’agrégat de la liste VALUES d'une instruction INSERT. |
8161 |
L’argument [n] de la fonction [GROUPING | GROUPING_ID] ne correspond pas à aucune des expressions dans la clause GROUP BY. |
Vérifiez que chaque argument de la fonction GROUPING ou GROUPING_ID correspond à un élément de regroupement dans la clause GROUP BY et que tous les arguments de la fonction GROUPING et GROUPING_ID ont la même portée. Dans l'exemple suivant, la référence à la table T (de la requête principale) dans la sous-requête provoquera une erreur.
|
8661 |
Impossible de créer l''index en cluster <indexname > sur la vue < viewname> parce que la clé d'index inclut des colonnes qui ne sont pas dans la clause GROUP BY. Envisagez d'éliminer de la clé d'index les colonnes qui ne sont pas dans la clause GROUP BY. |
Vous ne pouvez pas créer de vue indexée lorsque la définition de la vue contient une clause GROUP BY comportant l'élément (), total général. |
10119 |
Impossible de créer l’index en cluster <indexname> sur la vue < viewname> parce qu'il contient un opérateur CUBE, ROLLUP ou GROUPING SETS. Envisagez de ne pas indexer cette vue. |
Une vue indexée ne peut pas être créée lorsque la définition de la vue contient une clause GROUP BY générale. |
10702 |
Les options WITH CUBE, et WITH ROLLUP ne sont pas autorisées dans une spécification ROLLUP, CUBE ou GROUPING SETS. |
Réécrivez la requête afin qu'il n'y ait aucune combinaison des mots clés non-ISO WITH CUBE ou WITH ROLLUP et des mots clés compatibles ISO GROUPING SETS, CUBE ou ROLLUP. |
10703 |
Nombre de jeux de regroupement trop élevé. Le nombre maximal est 4096. |
Ramenez le nombre de jeux de regroupement dans une clause GROUP BY générale à 4096 ou moins. |
10706 |
Trop d'expressions sont spécifiées dans la clause GROUP BY. Le nombre maximal est 32 lorsque les jeux de regroupement sont fournis. |
Ramenez le nombre d’éléments de regroupement distincts dans une clause GROUP BY générale à 32 ou moins. |
10708 |
Les constructions de regroupement CUBE () et ROLLUP () ne sont pas autorisées dans le mode de compatibilité actuel. Elles ne sont autorisées qu’en mode 100 ou supérieur. |
Vous ne pouvez pas utiliser CUBE () et ROLLUP() en mode de compatibilité 90. Utilisez la syntaxe WITH CUBE, WITH ROLLUP ou GROUPING SETS. |