Выборка — это фильтрация данных на основе значений фактов. При использовании верхних размерностей они также могут учитываться в выборке. Выборка скрывает все элементы размерности, значения фактов которых не удовлетворяют условиям выборки.

В Polymatica Analytics есть три предустановленных шаблона выборки и возможность создания пользовательской выборки. Функциональность выборки доступна через контекстное меню факта:

В контекстном меню «Выборка» предусмотрено три шаблона выборок:

Кнопка-ссылка «Новая выборка» открывает окно создания пользовательской выборки:

Условия для выборки задаются в формуле посредством выбора объектов в блоке «Данные» (или в выпадающих списках в поле ввода формулы) и с помощью кнопок для применения функций и операторов, а также с помощью ввода значений с клавиатуры. В формуле обязательно нужно указать условия по крайней мере для одного факта. При наличии в таблице верхних размерностей можно ограничить область выборки, указав конкретные элементы верхней размерности, тогда в выборке будут учитываться значения факта только в соответствующих столбцах.

В формуле выборки необходимо задавать логические выражения. Использование арифметических выражений не предусмотрено.

Для создания формулы вы можете использовать следующий процесс:

  1. Укажите верхнюю размерность, выбрав ее в левой части окна в блоке «Данные», в списке с заголовком «Размерность»:

    В поле для ввода формулы появится регулярное выражение типа Размерность, (Выберите элемент):

     

    Если область выборки необходимо ограничить конкретными элементами верхних размерностей, то сначала указывается размерность, после чего будет предложено выбрать элемент. После этого нужно вставить оператор AND и выбрать факт. Если такое ограничение не нужно, следует начать с шага 3, тогда выборка будет проводиться с учетом всех данных таблицы для выбранного факта.

  2. Укажите элемент выбранной верхней размерности. Его можно выбрать в левой части окна в блоке «Данные» или из выпадающего списка по нажатию на кнопку для выбора элемента в поле ввода формулы:

    Списки размерностей и элементов в блоке «Данные» доступны только при наличии в рабочей области мультисферы по крайней мере одной верхней размерности. Если верхняя размерность не добавлена, в списке элементов отображается соответствующая подсказка:

  3. Укажите факт. Его всегда можно выбрать в левой части окна в блоке «Данные»:


    Также факт можно выбрать в выпадающем списке в поле ввода формул, если предварительно была выбрана функция, предполагающая выбор факта:

    Если область выборки необходимо ограничить конкретными элементами верхних размерностей, то на шаге 3 после выбора размерности и элемента нужно вставить оператор AND и выбрать факт.

  4. Задайте условие. Для задания условия выборки можно использовать следующие функции и операторы:

    Кнопка

    Значение

    Функция

    Синтаксис

    Статистические функции

    top(n)

    Выборка наибольших значений

    Возвращает n наибольших значений выбранного факта.

    В данной версии программы функция top(n) не работает. Планируется исключение данной функции из системы и замена ее функцией top_fetch. Сейчас функцию top_fetch можно использовать через кнопку функции top(n).

    1. Нажать на кнопку top(n). В поле для ввода формулы поставить курсор между словом top и открывающей скобкой и ввести с клавиатуры _fetch:

    2. В полученной конструкции top_fetch(выберите факт;) нажать на «выберите факт» и выбрать факт, среди значений которого будут отбираться наибольшие.

    3. После точки с запятой ввести требуемое количество наибольших значений факта:

    4. Нажать на кнопку «Создать».

    Особенности использования функции top_fetch:

    • При наличии более одной размерности слева функция выбирает по N наибольших значений факта, соответствующих элементам последней вложенной размерности, для каждого элемента ее родительской размерности. Например, при наличии в таблице левых размерностей «Категория покупки» и «Номер чека» и факта «Сумма продажи» формула top_fetch(Сумма продажи;2) оставит в выборке строки, соответствующие двум чекам с наибольшей суммой продажи внутри каждой категории покупки.
    • При наличии верхних размерностей функция отбирает строки с учетом значений факта, соответствующих последней вложенной верхней размерности. Например, при наличии в таблице левой размерности «Категория покупки», верхних размерностей «Год», «Квартал», «Месяц» и факта «Сумма продажи» формула top_fetch(Сумма продажи;2) будет отбирать категории покупки с наибольшей суммой продажи, рассматривая значения факта в столбцах месяцев.
    • Функция отбрасывает строку, только если ячейки во всех ее столбцах не входят в топ-N c учетом иерархии. Например, при наличии в таблице левой размерности «Категория покупки», верхней размерности «Квартал» и факта «Сумма продажи» формула top_fetch(Сумма продажи;2) оставит в выборке две строки, только если значения в этих строках являются наибольшими для каждого квартала. Если же в каждом квартале максимальным значениям соответствуют разные категории покупки, в выборке останется восемь строк (по две для каждого из четырех кварталов). 
    • Область работы функции можно ограничить столбцами конкретных элементов верхних размерностей, используя кнопки «Размерность» и «Элемент».
    • Ограничить область работы функции столбцами промежуточных или совокупных итогов при наличии в таблице верхних размерностей нельзя. Для выполнения выборки с учетом значений в столбце совокупных итогов верхние размерности из таблицы нужно убрать.


    top([факт 1];n), например: top([Депозит];10)

    corr

    Корреляция

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

    corr([факт 1];[факт 2]), например: corr([Депозит];[Оплата])

    В формуле выборки функцию следует использовать не изолированно, а в составе логического выражения. Например: corr([Депозит];[Оплата])>0,5

    Логические функции

    if

    Если

    Выполняет проверку условия.

    if(условие;результат 1, если истинно; результат 2, если ложно)

    Чтобы отобразить строки, удовлетворяющие условию, и скрыть строки, не удовлетворяющие условию, на месте результата 1 нужно ввести 1, а на месте результата 2 нужно ввести 0. Например: if([Оплата]>1000000;1;0)
    При необходимости скрыть строки, удовлетворяющие условию, и отобразить строки, не удовлетворяющие условию, нужно поменять 1 и 0 местами:
    if([Оплата]>1000000;0;1)

    and

    И

    Проверяет выполнение нескольких условий.

    (Условие 1)and(Условие 2), например: ([Оплата]>=1000000)and([Комиссия]=0)

    or

    Или

    Проверяет выполнение хотя бы одного из условий.

    (Условие 1)or(Условие 2), например:

    ([Оплата]>=1000000)or([Комиссия]=0)

    not

    Не

    Меняет условие на противоположное.

    Например, not([Депозит]>0) скроет все строки, где значения факта [Депозит]>0.
    Также можно использовать данную функцию вместе с if:
    if(not(условие);результат 1, если истинно;результат 2, если ложно).
    В таком случае if(not([Оплата]>1000000);1;0) отобразит только те строки, в которых значения факта [Оплата] не превышают 1000000. При использовании if(not([Оплата]>1000000);0;1) такие строки наоборот будут скрыты.

    is null

    Равно пустому значению

    Возвращает пустые значения факта.

    Например: is_null(Комиссия)

    is not null

    Не равно пустому значению

    Возвращает значения факта, КРОМЕ пустых.

    Например: not(is_null(Комиссия))

    Операторы сравнения

    < 

    Меньше

    Возвращает значения факта, которые меньше указанного.

    Например: [Комиссия]<0

    > 

    Больше

    Возвращает значения факта, которые больше указанного.

    Например: [Комиссия]>0

    <=

    Меньше или равно

    Возвращает значения факта, которые меньше или равны указанному.

    Например: [Комиссия]<=0

    >=

    Больше или равно

    Возвращает значения факта, которые больше или равны указанному.

    Например: [Комиссия]>=0

    =

    Равно

    Возвращает значения фактов, которые равны друг другу или указанному значению.

    Например: [Комиссия]=0

    !=

    Не равно

    Возвращает значения факта, которые не равны указанному.

    Например: [Оплата]!=[Итоговая сумма]

    Математические функции

    +

    Плюс

    Возвращает сумму значений.

    Например: [Стоимость товаров]+[Комиссия]!=[Итоговая сумма]

    -

    Минус

    Возвращает разность значений.

    Например: [Цена конкурента]-1 < [МРЦ]

    *

    Умножить

    Возвращает произведение значений.

    Например: [Тариф]*[Понижающий коэффициент]>=500000

    /

    Разделить

    Возвращает частное значений.

    Например: [Лучшая цена]/[НМЦК]>=0,9

    ()

    Скобки

    Используются для изменения порядка вычислений.

    Например: ([Итоговая сумма]-[Оплата])*100/[Комиссия]>=100000

    Числовые значения, операторы сравнения и математические функции можно вводить с клавиатуры. Для указания дробной части числа используйте точку.

    Пример введенной формулы:

     

  5. После того, как условия будут заданы, необходимо нажать кнопку «Создать». Если формула задана корректно, произойдет перестройка области данных окна мультисферы согласно формуле. Если формула некорректна, поле формулы будет выделено красным и выборка применена не будет.


Для удаления элемента формулы, введенного по ошибке, используйте клавишу Backspace.

Нажатие на крестик в правом верхнем углу поля ввода формулы удаляет всю введенную формулу.

При нажатии на кнопку «Отменить» окно «Выборка» закроется, выборка применена не будет, а введенная формула не будет отображаться при повторном открытии окна. 

Когда к мультисфере применена выборка, в верхней части окна мультисферы отображается активная кнопка . Для того чтобы снять выборку с мультисферы, необходимо нажать на данную кнопку. Кнопка изменит цвет , а условия выборки будут отменены. Повторное нажатие на кнопку применяет последнюю созданную формулу выборки.

В случае ввода в поле для формулы некорректных данных отображается окно с ошибкой:

Выборка с учетом вложенных размерностей

Если в мультисфере вынесено несколько размерностей влево, в зависимости от вида факта и типа расчета выборка работает следующим образом:

Выборка для сложных фактов с расчетом по уровню требует вынесения не менее двух размерностей влево.

Выборка и фильтр размерностей

Выборку можно применять к размерности, на которую наложен фильтр. При снятии фильтра с размерности в окне мультисферы, где применена выборка, выборка должна примениться и к строкам, которые были ранее скрыты наложенным фильтром. Строки, удовлетворяющие условиям выборки, будут отображены, остальные — скрыты. 

Аналогичным образом можно применять фильтр к размерности в окне мультисферы, где применена выборка. При снятии выборки фильтр должен примениться и к строкам, которые были ранее скрыты выборкой. Строки, удовлетворяющие условиям наложенного фильтра, будут отображены, остальные — скрыты.