Перейти к основному содержимому

Concat — функция диаграммы

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

Синтаксис:  

Concat({[SetExpression] [DISTINCT] [TOTAL [<fld{, fld}>]]} string[, delimiter[, sort_weight]])

Возвращаемые типы данных: строка

Аргументы:  

Аргументы
Аргумент Описание
string

Выражение или поле, содержащее строку для обработки.

delimiter Каждое значение может быть разделено строкой, найденной в delimiter.
sort-weight

Порядок объединения может быть определен значением измерения sort-weight при его наличии со строкой, соответствующей наименьшему значению, появляющемуся в объединении первым.

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

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

При использовании выражения TOTAL [<fld {.fld}>], где префикс TOTAL предшествует списку из одного или нескольких имен полей, выступающих в качестве подмножества переменных измерения диаграммы, создается подмножество всех возможных значений.

Определение объема агрегирования

Примеры и результаты:  

Results table
SalesGroup Amount Concat(Team) Concat(TOTAL <SalesGroup> Team)
East 25000 Alpha AlphaBetaDeltaGammaGamma
East 20000 BetaGammaGamma AlphaBetaDeltaGammaGamma
East 14000 Delta AlphaBetaDeltaGammaGamma
West 17000 Epsilon EpsilonEtaThetaZeta
West 14000 Eta EpsilonEtaThetaZeta
West 23000 Theta EpsilonEtaThetaZeta
West 19000 Zeta EpsilonEtaThetaZeta
Примеры функции
Пример Результат
Concat(Team)

Таблица состоит из измерений SalesGroup и Amount и вариантов меры Concat(Team). Игнорируя результат «Итоги», обратите внимание, что несмотря на то, что существуют данные для восьми значений элемента Team, разбросанные по двум значениям элемента SalesGroup, единственным результатом меры Concat(Team), которая объединяет больше одного значения строки Team в таблице, является строка, содержащая измерение Amount 20 000, результатом которого является BetaGammaGamma. Это обусловлено тем, что во входных данных существует три значения для измерения Amount 20 000. Все прочие результаты остаются не связанными, если мера заполнена по всем измерениям, поскольку существует только одно значение элемента Team для каждой комбинации элементов SalesGroup и Amount.

Concat(DISTINCT Team,', ') Элементы Beta, Gamma, поскольку классификатор DISTINCT означает, что результат дубликата Gamma игнорируется. Также аргумент разделителя определяется как запятая, после которой стоит пробел.
Concat (TOTAL <SalesGroup> Team) Все значения строки для всех значений элемента Team объединяются, если используется классификатор TOTAL. Если указана выборка поля <SalesGroup>, результаты делятся на два значения измерения SalesGroup. Для элемента SalesGroupEast результатами являются AlphaBetaDeltaGammaGamma. Для элемента SalesGroupWest результатами являются EpsilonEtaThetaZeta.
Concat (TOTAL <SalesGroup> Team,';', Amount) При добавлении аргумента для элемента sort-weight: Amount результаты упорядочиваются значением измерения Amount. Результатом становятся значения DeltaBetaGammaGammaAlpha и EtaEpsilonZEtaTheta.

Данные, используемые в примере:

TeamData:

LOAD * inline [

SalesGroup|Team|Date|Amount

East|Gamma|01/05/2013|20000

East|Gamma|02/05/2013|20000

West|Zeta|01/06/2013|19000

East|Alpha|01/07/2013|25000

East|Delta|01/08/2013|14000

West|Epsilon|01/09/2013|17000

West|Eta|01/10/2013|14000

East|Beta|01/11/2013|20000

West|Theta|01/12/2013|23000

] (delimiter is '|');

Помогла ли вам эта страница?

Если вы обнаружили какую-либо проблему на этой странице и с ее содержанием — будь то опечатка, пропущенный шаг или техническая ошибка, сообщите нам об этом, чтобы мы смогли ее исправить!