colintersection

Назначение

Функция colintersection – это сокращение от «column intersection» (пересечение колонок). Термин пересечение в данном контексте обозначает результат булевой операции над булевыми значениями. Операция пересечения аналогична операции с булевым оператором И таким же образом, как слияние аналогично булевому оператору ИЛИ. Булевые операторы возвращают либо ""истину"" либо ""ложь"" (и в некоторых случаях нулевое значение, но в данном разделе такие случаи не рассматриваются). Чтобы вернуть "истину", необходимо, чтобы оба операнда имели значение "истина"; в противном случае возвращается значение "ложь".

Например, (истина И истина И истина) выдает истину. Если бы вы проверяли значения булевой колонки, как например «Состоит в браке» (Is Married), и получили итог этих значений, то результатом была бы истина, если бы каждое отдельное значение было истинным. Если бы хотя бы одно значение было ложным, то в результате вы бы получили ложное значение. Другими словами, чтобы в итоге получить истину, необходимо, чтобы все значения были истинными.

Таким образом, данная функция выдает либо истинные значения, либо ложные, в зависимости от значений данной колонки (колонка должна содержать булевый тип данных). Эта функция во многом схожа с методом агрегирования «пересечение», который вы можете выбрать при работе с узлом агрегирования.

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

Синтаксис

colintersection(колонка,[строка])

Аргументы

Первый обязательный аргумент - имя колонки. Данный аргумент может включать теги колонок (#column) только в том случае, если именованный аргумент "type" отсутствует.

В целях совместимости второй необязательный аргумент автоматически конвертируется в именованный аргумент filter (если данный именованный аргумент отсутствует). Используются следующие именованные аргументы:

  • "type": строковый аргумент, имеющий одно из следующих значений: "numerical", "integer", "yesno", "string", "datetime", "stringid", "text", "numid".

    • Если данный аргумент пропущен, то единственный обязательный аргумент рассматривается как существующее имя колонки или строковая константа, эквивалентная имени колонки.

    • Если данный аргумент присутствует, то обязательный аргумент рассматривается как выражение строкового типа, которое применяется к именам колонках в родительском датасете.

    Значение аргумента "type" - тип обработанных имен колонок. Колонки других типов будут пропущены, и для них функция вернет пустое значение.

  • "keys": строковая константа со списком колонок, означающих ключевые колонки, на которых функция группирует исходные данные (подобно выражению GROUP BY в SQL), т.е. "[Origin][Cylinders]". Вместо имен колонок также могут использоваться теги колонок.

  • filter: строковое выражение, которое обозначает фильтр и которое применяется к исходным данным до выполнения агрегирования (подобно выражению HAVING в SQL). Может отличаться в разных строках таблицы данных:

    filter:=[Mpg]>20

  • "maxbufsize": число агрегированных ключевых значений, по умолчанию до 1000000. Поскольку функция выполняет расчет используя оперативную память, функция может требовать большой объем памяти. Если это неприемлемо (если необходимые ресурсы отсутствуют) используйте комбинацию узлов Агрегирование и Объединение вместо данной функции.

  • "skipnan": булево выражение, соответствующее опции "Пропустить отсутствующие значения ключа" узла Агрегирование.

  • "delimiter": строковое выражение, используемое в функции colconcat и соответствующее опции "Строка-разделитель, заданная пользователем" узла Агрегирование.

  • "maxlen": числовое выражение, обозначающее максимальный размер конкатенированного текста (по умолчанию 20 млн. символов).

Аргумент filter не может содержать тегов (#колонки).

Возвращаемое значение

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

Если какое-либо из оцениваемых значений нулевое, то возвращается нулевое булевое значение.

Примеры

Выражение true AND true AND true оценивается как true.

Если бы вам нужно было просмотреть значения булевой колонки, как например Is Married, и получить пересечение ее значений, вы получили бы значение true, если каждое значение было бы истинным, но если хотя бы одно из значений было бы ложным, вы получили бы значение false.