Yandex Cloud
Поиск
Связаться с экспертомПопробовать бесплатно
  • Кейсы
  • Документация
  • Блог
  • Все сервисы
    • Cloud Interconnect
    • Cloud Backup
    • Cloud Registry
    • Yandex AI Studio
    • Compute Cloud
    • Object Storage
    • Managed Service for Kubernetes®
    • Yandex BareMetal
    • Smart Web Security
    • Security Deck
    • Managed Service for PostgreSQL
    • Managed Service for ClickHouse®
    • Monium
    • Cloud CDN
    • Network Load Balancer
    • Virtual Private Cloud
    • Cloud DNS
    • Application Load Balancer
    • Yandex Cloud Video
    • Stackland
    • Yandex Cloud Router
    • Yandex Managed Service for Trino
    • Managed Service for MySQL®
    • Managed Service for Valkey™
    • Managed Service for Apache Spark™
    • Yandex StoreDoc
    • Managed Service for OpenSearch
    • Managed Service for Apache Kafka®
    • Data Transfer
    • Yandex MPP Analytics Engine for PostgreSQL
    • Yandex Managed Service for Apache Airflow®
    • Data Processing
    • Yandex MetaData Hub
    • Managed Service for YDB
    • Managed Service for Sharded PostgreSQL
    • Managed Service for YTsaurus
    • Yandex WebSQL
    • DataLens
    • Yandex Search API
    • SpeechSense
    • SpeechKit
    • DataSphere
    • Vision OCR
    • Translate
    • Yandex Neurosupport
    • Yandex Cloud Detection and Response
    • Yandex Identity Hub
    • Key Management Service
    • Certificate Manager
    • Yandex Lockbox
    • Audit Trails
    • SmartCaptcha
    • Cloud Desktop
    • GOST Gateway
    • Yandex SIEM
    • SourceCraft Code Assistant
    • Container Registry
    • Managed Service for GitLab
    • SourceCraft
    • Managed Service for Prometheus®
    • Cloud Functions
    • API Gateway
    • Yandex Cloud Postbox
    • Message Queue
    • Serverless Integrations
    • IoT Core
    • Data Streams
    • Serverless Containers
    • Cloud Notification Service
    • Yandex Query
    • Identity and Access Management
    • Yandex Cloud Console
    • Resource Manager
    • Yandex Cloud Billing
    • Yandex Cloud Quota Manager
    • Cloud Apps
  • Статус работы сервисов
  • Marketplace
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Искусственный интеллект
    • Безопасность
    • Инструменты DevOps
    • Бессерверные вычисления
    • Управление ресурсами
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Yandex Cloud Trust
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Калькулятор цен
    • Тарифы
    • Акции и free tier
  • Кейсы
  • Документация
  • Блог
Создавайте контент и получайте гранты!Готовы написать своё руководство? Участвуйте в контент-программе и получайте гранты на работу с облачными сервисами!
Подробнее о программе
Проект Яндекса
© 2026 ООО «Яндекс.Облако»
Yandex DataLens
  • Нейроаналитик DataLens
  • Галерея в DataLens
  • Аудитные логи Audit Trails

В этой статье:

  • Как исправить ошибку
  • Примеры

[Yandex DataLens] Inconsistent aggregation among operands

Статья создана
Yandex Cloud
Обновлена 25 февраля 2026 г.
Открыть в Markdown
  • Как исправить ошибку
  • Примеры

ERR.DS_API.FORMULA.VALIDATION.AGG.INCONSISTENT

Происходит, когда аргументами одной и той же функции (или операндами одного оператора) являются одновременно агрегированное и неагрегированное выражения.

При вычислении агрегированного значения происходит преобразование большого набора строк в единственное значение. Для этого применяются специальные агрегатные функции. Наиболее часто применяются функции SUM, MIN, MAX, AVG и COUNT. Агрегатные функции рассчитывают и возвращают одно результирующее значение для всех строк запроса. Если используется группировка, то рассчитываются и возвращаются значения отдельно для каждой группы, на которые разбивается результат запроса.

В DataLens вы не можете использовать в одном выражении агрегированные и неагрегированные значения. Нельзя использовать в одном выражении показатели (отображаются в датасете и в визарде синим цветом) и измерения (отображаются в датасете и в визарде зеленым цветом).

Еще ошибка может появиться, когда у оконной функции в разделе WITHIN есть поля, не являющиеся ни агрегацией, ни измерением в чарте.

Как исправить ошибкуКак исправить ошибку

Чтобы исправить ошибку:

  • Примените агрегацию ко всем полям в выражении.
  • Разделите выражение на отдельные показатели.
  • Используйте LOD-выражения, чтобы создать вложенные агрегации и агрегации над всеми данными или группами, отличающимися от группировки, заданной на уровне чарта.

ПримерыПримеры

Пример 1. Деление поля на агрегированную сумму

  • Некорректная формула: [Sales] / SUM([Sales]).
  • Проблема: Поле Sales неагрегированное, а SUM([Sales]) — агрегированное. Поле Sales не является ни агрегацией, ни измерением в рамках группы. Оно не имеет фиксированного значения — в каждой строке оно может быть разным. Поэтому невозможно определить, какое конкретно значение поля Sales должно быть выбрано при вычислении выражения [Sales] / SUM([Sales]). Это выражение вычислить невозможно.
  • Решение: Используйте агрегацию для поля Sales. Тогда это поле станет показателем.
  • Корректная формула: AVG([Sales]) / SUM([Sales]).
Сценарий с делением поля на агрегированную сумму

Для большей наглядности выполните следующий сценарий:

  1. Создайте подключение к демонстрационной БД и датасет на основе таблицы MS_SalesFacts.

  2. На основе датасета создайте чарт Таблица.

  3. Из раздела Измерения перетащите поле Sales в секцию Столбцы. К полю не применяется функция агрегации — это измерение. В интерфейсе измерения отображаются зеленым цветом. Они задают группировку в чартах.

  4. Создайте поле SUM([Sales]) с формулой SUM([Sales]) и перетащите его из раздела Показатели в секцию Столбцы. В формуле поля к числовому значению применяется функция агрегации — это показатель. В интерфейсе показатели отображаются синим цветом. Агрегатная функция рассчитывает и возвращает одно результирующее значение для каждой группы, на которые разбивается результат запроса — для каждой группы Sales рассчитывается одно значение SUM([Sales]).

  5. Создайте поле [Sales]/SUM([Sales]) с формулой [Sales]/SUM([Sales]) и перетащите его из раздела Показатели в секцию Столбцы. Это тоже показатель. Измерение Sales используется при построении чарта и задает группировку для вычисления показателей. Поэтому для вычисления каждого значения [Sales]/SUM([Sales]) используется одно конкретное значение Sales, и ошибка не возникает.

    Агрегация в чарте с группировкой

    image

  6. Удалите из секции Столбцы измерение Sales. Теперь нет измерения, определяющего группировку в чарте, и агрегатные функции рассчитывают и возвращают одно результирующее значение для всех строк запроса. Но в формуле [Sales]/SUM([Sales]) присутствует поле Sales без агрегации, которое не используется при построении чарта и не имеет фиксированного значения. Поэтому непонятно, какое значение поля Sales использовать для вычисления значения выражения. Возникает ошибка.

    Агрегация с ошибкой

    image

  7. Из раздела Измерения перетащите поле PaymentType в секцию Столбцы. Теперь группировку в чарте определяет измерение PaymentType, и агрегатная функция рассчитывает и возвращает одно результирующее значение для каждой группы. Но в каждой группе PaymentType содержится много записей с разными значениями Sales, поэтому непонятно, какое значение поля Sales использовать для вычисления значения выражения [Sales] / SUM([Sales]). Также возникает ошибка.

  8. Создайте поле AVG([Sales])/SUM([Sales]) с формулой AVG([Sales])/SUM([Sales]) и замените на него показатель [Sales]/SUM([Sales]) в секции Столбцы. Теперь для каждой группы PaymentType вычисляются результирующие значения AVG([Sales]) и SUM([Sales]), которые используются для вычисления значения выражения AVG([Sales])/SUM([Sales]). Ошибка не возникает.

    Агрегация без ошибки

    image

Пример 2. Вычитание неагрегированного поля из агрегированного

  • Некорректная формула: [Total Sales] - [Profit].
  • Проблема: Поле Total Sales агрегированное, а Profit — неагрегированное. [Total Sales] — результат комбинирования всех записей группы, а выражение [Profit] имеет разное значение для каждой записи, и для группы не понятно, какое значение нужно брать. Такое выражение лишено смысла, его невозможно вычислить.
  • Решение: Применить агрегацию к полю Profit.
  • Корректная формула: [Total Sales] - SUM([Profit]).

Была ли статья полезна?

Создавайте контент и получайте гранты!Готовы написать своё руководство? Участвуйте в контент-программе и получайте гранты на работу с облачными сервисами!
Подробнее о программе
Проект Яндекса
© 2026 ООО «Яндекс.Облако»