Поделиться через


Устранение неполадок предложения 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

Статистическое выражение не может использоваться в предложении WHERE, если оно не содержится во вложенном запросе предложения HAVING или в списке выбора, и столбец, подвергаемый статистической обработке, не является внешней ссылкой.

Удалите функцию группирования или статистическое выражение из предложения WHERE.

157

Статистическое выражение нельзя использовать в списке SET инструкции UPDATE.

Удалите функцию группирования или статистическое выражение из списка SET предложения UPDATE.

158

Статистическое выражение нельзя использовать в предложении OUTPUT.

Удалите функцию группирования или статистическое выражение из предложения OUTPUT.

162

Недопустимое выражение в предложении TOP.

Удалите функцию группирования или статистическое выражение из предложения TOP.

174

Функции GROUPING требуется 1 аргумент.

Измените список аргументов функции GROUPING () таким образом, чтобы в нем содержался ровно один аргумент.

175

Статистическое выражение нельзя использовать в выражениях вычисляемых столбцов или в ограничениях CHECK.

Удалите функцию GROUPING или статистическое выражение из вычисляемых столбцов и ограничений CHECK инструкции DDL.

189

Функции GROUPING_ID требуется от 0 до 32 аргументов.

Сократите количество аргументов функции GROUPING_ID () так, чтобы оно не превышало 32.

1015

Статистическое выражение не может входить в предложение ON, если оно не содержится во вложенном запросе предложения HAVING или в списке выбора, и группируемый столбец не является внешней ссылкой.

Удалите функцию GROUPING или статистическое выражение из предложения ON.

1028

Параметры CUBE, ROLLUP и GROUPING SETS не допускаются в предложении GROUP BY ALL.

Измените запрос таким образом, чтобы для параметра GROUP BY ALL не были указаны ключевые слова GROUPING SETS, CUBE, ROLLUP, WITH CUBE или WITH ROLLUP.

4101

Статистические выражения справа от предложения APPLY не могут ссылаться на столбцы, находящиеся слева.

Удалите функцию GROUPING или статистическое выражение из правой части предложения APPLY.

4113

GROUPING | GROUPING_ID не является допустимой оконной функцией и не может использоваться с предложением OVER.

Измените запрос таким образом, чтобы функция GROUPING () или GROUPING_ID () не использовалась с предложением OVER.

4142

Статистические выражения в списке RECEIVE недопустимы.

Удалите функцию группирования или статистическое выражение из списка RECEIVE.

5310

Статистические выражения в списке VALUES инструкции INSERT недопустимы.

Удалите функцию группирования или статистическое выражение из списка VALUES предложения INSERT.

8161

Аргумент [n] функции [GROUPING | GROUPING_ID] не соответствует ни одному из выражений, указанных в предложении GROUP BY.

Убедитесь, что каждый аргумент функции GROUPING или GROUPING_ID соответствует какому-либо элементу группирования, указанному в предложении GROUP BY, и что для всех аргументов функции GROUPING или GROUPING_ID задана одна и та же область.

В следующем примере ссылка вложенного запроса на таблицу T (в главном запросе) вызовет ошибку.

SELECT T.b, SUM(T.x)FROM TGROUP BY T.b HAVING EXISTS(SELECT 1FROM T1GROUP BY T1.aHAVING GROUPING_ID(T1.a, T.b) = 1)

8661

Невозможно создать кластеризованный индекс <indexname> на представлении <viewname>, поскольку ключ индекса содержит столбцы, отсутствующие в предложении GROUP BY. Удалите из ключа индекса столбцы, не входящие в предложение GROUP BY.

Невозможно создать индексированное представление, когда определение представления включает в себя предложение GROUP BY, в котором содержится только элемент (), grand total (Общий итог).

10119

Невозможно создать кластеризованный индекс <indexname> для представления <viewname>, поскольку в нем содержатся операторы CUBE, ROLLUP или GROUPING SETS. Рекомендуется не индексировать это представление.

Невозможно создать индексированное представление, когда определение представления содержит общее предложение GROUP BY.

10702

Использование параметров WITH CUBE и WITH ROLLUP в спецификациях ROLLUP, CUBE или GROUPING SETS недопустимо.

Измените запрос таким образом, чтобы он не содержал никаких сочетаний несовместимых с 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.