> ## Documentation Index
> Fetch the complete documentation index at: https://iyree.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Фильтры мер

> Настройка фильтров для мер в редакторе кубов

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

## Обзор

При редактировании меры в кубе можно добавить один или несколько фильтров. Фильтры применяются к данным **до** агрегации.

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

***

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

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

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

```sql theme={null}
delivery_service_type = 'COURIER'
```

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

```sql theme={null}
LOWER(department_name) like '%москва%'
```

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

```sql theme={null}
LOWER(department_name) like '%москва%'
OR department_name = 'Тверская 10'
```

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

В одном фильтре можно использовать любые комбинации `AND` и `OR` с группировкой через скобки:

```sql theme={null}
(
  LOWER(department_name) like '%москва%'
  OR department_name = 'Тверская 10'
) 
AND delivery_service_type = 'COURIER'
```

***

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

Если мере добавлено несколько фильтров, они объединяются через `AND`.

<Warning>
  Это стандартное поведение Cube.js. Несколько фильтров всегда работают как логическое И (AND).
</Warning>

### Пример

Два отдельных фильтра:

**Фильтр 1:**

```sql theme={null}
LOWER(department_name) like '%москва%'
OR department_name = 'Тверская 10'
```

**Фильтр 2:**

```sql theme={null}
delivery_service_type = 'COURIER'
```

**Эквивалентны** одному комбинированному фильтру:

```sql theme={null}
(
  LOWER(department_name) like '%москва%'
  OR department_name = 'Тверская 10'
) 
AND delivery_service_type = 'COURIER'
```

***

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

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

***

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

<Steps>
  <Step title="Используйте один сложный фильтр для OR-логики">
    Если нужно условие «A или B», объедините их в одном фильтре через `OR`.
  </Step>

  <Step title="Используйте несколько фильтров для AND-логики">
    Для условия «A и B» можно добавить два отдельных фильтра — они автоматически объединятся через `AND`, при этом в интерфейсе редактирования набора данных будут выглядеть более читаемо, чем объединенные через AND в одну строку несколько выражений.
  </Step>

  <Step title="Группируйте скобками">
    При сложной логике всегда явно группируйте условия скобками для читаемости.
  </Step>

  <Step title="Учитывайте синтаксис БД">
    Используйте функции и операторы, поддерживаемые вашей базой данных.
  </Step>
</Steps>

***

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

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

```sql theme={null}
delivery_service_type = 'COURIER'
```

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

```sql theme={null}
Region = 'Москва' OR Region = 'Московская область'
```

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

**Фильтр 1:**

```sql theme={null}
CustomStatus = 'ACTIVE'
```

**Фильтр 2:**

```sql theme={null}
TotalSum > 1000
```

***

## См. также

<CardGroup cols={2}>
  <Card title="Cube.js Measures" icon="cube" href="https://cube.dev/docs/product/data-modeling/reference/measures">
    Документация Cube.js по мерам
  </Card>
</CardGroup>
