Обработка данных | A-TECHS

Обработка данных

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

Compute

Compute( newField1, expression1, newField2, expression2,…, newFieldN, expressionN), где

newField1,…, newFieldN — имена новых колонок таблицы, в которые будут помещены результаты вычислений

expression1,…, expressionN — вычисляемые выражения

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

Пример:

Товары | Склад(основной) | GroupBy(Product, Quantity as Количество, Amount as Сумма) | Compute( Цена, Сумма/Количество)

В результирующую таблицу будет добавлена колонка Цена, рассчитанная по формуле Сумма/Количество. Обратите внимание, что в выражении используются псевдонимы полей, установленные ранее в GroupBy.

DeleteColumn

DeleteColumn( name1,…, nameN), где name1,…, nameN — имена колонок, которые необходимо удалить.

Удаляет колонки из результирующей Таблицы.

Distinct

Distinct( name1,…, nameN), где name1,…, nameN — имена колонок, являющиеся ключевыми для определения уникальности строки.

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

 

Having

Having( expression ), где expression — логическое выражение.

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

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

В выражении допустимо использование следующих операторов сравнения.

> Больше
>= Больше или равно
< Меньше
<= Меньше или равно
= Равно
<> Не равно

Также возможно использование следующих логических операторов.

And Да
Or Нет
Not Не

Пример:

Деньги | Period( ThisMonth ) | GroupBy(CompanyAccount, BudgetItem, Amount) | Having( amount > 1500 )

Отбираем записи в которых значение поля Amount больше 1500.


 OrderBy

OrderBy( name1 <asc, desc>, name2 <asc, desc>,…,nameN <asc, desc>), где

name1,…, nameN — имена полей по которым необходимо выполнить сортировку

<asc, desc> — направление сортировки, asc — возрастание (по-умолчанию), desc — убывание

Выполняет сортировку по указанным полям. Если направление сортировки не указано, выполняется сортировка по возрастанию.


Пример:

OrderBy( order_title, product_title) — сортировка по заголовку заказа и заголовку номенклатуры по возрастанию.

OrderBy( order_title desc, product_title) — сортировка по заголовку заказа по убыванию, и заголовку номенклатуры по возрастанию.


 Top

Top( n ), где n — количество выбираемых строк.

Выбирает первые n строк из исходной таблицы.

Если необходимо отобрать последние строки таблицы — следует поменять направление сортировки при помощи OrderBy, и отобрать первые строки.


Пример:

Sales | GroupBy( Product, Amount ) | OrderBy ( Amount desc ) | Top( 3 ) — три самых продаваемых товара.

Sales | GroupBy( Product, Amount ) | OrderBy ( Amount ) | Top( 3 ) — три наименее продаваемых товара. От предыдущего выражения данное выражение отличается только направлением сортировки.