Skip to main content
Фильтры позволяют ограничить данные, которые участвуют в расчёте меры.

Обзор

При редактировании меры в кубе можно добавить один или несколько фильтров. Фильтры применяются к данным до агрегации.
Фильтры мер — это стандартная функциональность Cube.js. Наборы данных IYREE сохраняет полную совместимость с Cube.js.

Синтаксис фильтров

Фильтр — это SQL-выражение, которое возвращает TRUE или FALSE для каждой строки данных.

Простой фильтр

delivery_service_type = 'COURIER'

Фильтр с функцией

LOWER(department_name) like '%москва%'

Комбинированный фильтр (OR)

LOWER(department_name) like '%москва%'
OR department_name = 'Тверская 10'

Сложный фильтр (AND + OR)

В одном фильтре можно использовать любые комбинации AND и OR с группировкой через скобки:
(
  LOWER(department_name) like '%москва%'
  OR department_name = 'Тверская 10'
) 
AND delivery_service_type = 'COURIER'

Несколько фильтров

Если мере добавлено несколько фильтров, они объединяются через AND.
Это стандартное поведение Cube.js. Несколько фильтров всегда работают как логическое И (AND).

Пример

Два отдельных фильтра: Фильтр 1:
LOWER(department_name) like '%москва%'
OR department_name = 'Тверская 10'
Фильтр 2:
delivery_service_type = 'COURIER'
Эквивалентны одному комбинированному фильтру:
(
  LOWER(department_name) like '%москва%'
  OR department_name = 'Тверская 10'
) 
AND delivery_service_type = 'COURIER'

Совместимость с базами данных

Синтаксис фильтров зависит от используемой базы данных.

Рекомендации

1

Используйте один сложный фильтр для OR-логики

Если нужно условие «A или B», объедините их в одном фильтре через OR.
2

Используйте несколько фильтров для AND-логики

Для условия «A и B» можно добавить два отдельных фильтра — они автоматически объединятся через AND, при этом в интерфейсе редактирования набора данных будут выглядеть более читаемо, чем объединенные через AND в одну строку несколько выражений.
3

Группируйте скобками

При сложной логике всегда явно группируйте условия скобками для читаемости.
4

Учитывайте синтаксис БД

Используйте функции и операторы, поддерживаемые вашей базой данных.

Примеры использования

Мера «Выручка по курьерской доставке»

delivery_service_type = 'COURIER'

Мера «Заказы из Москвы и области»

Region = 'Москва' OR Region = 'Московская область'

Мера «Активные клиенты с покупками > 1000»

Фильтр 1:
CustomStatus = 'ACTIVE'
Фильтр 2:
TotalSum > 1000

См. также