Concat — функция диаграммы
Функция Concat() используется для объединения строковых значений. Функция возвращает агрегированное объединение строк всех значений выражения, оцениваемого по каждому измерению.
Concat({[SetExpression] [DISTINCT] [TOTAL [<fld{, fld}>]]} string[, delimiter[, sort_weight]])
Возвращаемые типы данных: string
| Аргумент | Описание |
|---|---|
| string |
Выражение или поле, содержащее строку для обработки. |
| delimiter | Каждое значение может быть разделено строкой, найденной в delimiter. |
| sort-weight |
Порядок конкатенации может определяться значением измерения sort-weight, если оно присутствует, при этом строка, соответствующая наименьшему значению, будет первой в конкатенации |
| SetExpression | По умолчанию функция агрегирования агрегирует множество возможных записей, определенных выборкой. Альтернативный набор записей может быть определен выражением анализа множества. |
| DISTINCT | Если слово DISTINCT указывается до аргументов функции, все дубликаты, возникшие в результате оценки аргументов функции, будут проигнорированы. |
| TOTAL |
Если слово TOTAL стоит перед аргументами функции, вычисление выполняется по всем возможным значениям, указанным в текущих выборках, а не только в тех, которые относятся к значению текущего измерения, т. е. измерения диаграммы игнорируются. При использовании выражения TOTAL [<fld {.fld}>], где префикс TOTAL предшествует списку из одного или нескольких имен полей, выступающих в качестве подмножества переменных измерения диаграммы, создается подмножество всех возможных значений. |
| 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). Если не учитывать результат строки Totals, обратите внимание, что хотя в данных присутствует восемь значений Team, распределенных по двум значениям SalesGroup, единственным результатом меры Concat(Team), объединяющим более одного строкового значения Team в таблице, является строка, содержащая измерение Amount со значением 20000, которая возвращает результат BetaGammaGamma. Это связано с тем, что во входных данных есть три значения для Amount 20000. Все остальные результаты остаются необъединенными при распределении меры по измерениям, так как для каждого сочетания SalesGroup и Amount существует только одно значение Team. |
| 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 '|');