Concat — функция диаграммы
Последнее обновление: 2026-11-03
Функция Concat() используется для объединения строковых значений. Функция возвращает агрегированное объединение строк всех значений выражения, оцениваемого по каждому измерению.
Concat({[SetExpression] [DISTINCT] [TOTAL [<fld{, fld}>]]} string[, delimiter[, sort_weight]])
Возвращаемые типы данных: строка
| Аргумент | Описание |
|---|---|
| string |
Выражение или поле, содержащее строку для обработки. |
| delimiter | Каждое значение может быть разделено строкой, найденной в delimiter. |
| sort_weight |
Порядок объединения может определяться значением измерения sort_weight (если оно присутствует), при этом строка, соответствующая наименьшему значению, будет первой в объединении. Если в качестве значения аргумента sort_weight используется 0, сортировка к выводу не применяется. Если аргумент sort_weight опущен, функция по умолчанию использует буквенно-цифровую сортировку. |
| SetExpression | По умолчанию функция агрегирования агрегирует множество возможных записей, определенных выборкой. Альтернативный набор записей может быть определен выражением анализа множества. |
| DISTINCT | Если слово DISTINCT указывается до аргументов функции, все дубликаты, возникшие в результате оценки аргументов функции, будут проигнорированы. |
| TOTAL |
Если слово TOTAL стоит перед аргументами функции, вычисление выполняется по всем возможным значениям, указанным в текущих выборках, а не только в тех, которые относятся к значению текущего измерения, т. е. измерения диаграммы игнорируются. При использовании выражения TOTAL [<fld {.fld}>], где префикс TOTAL предшествует списку из одного или нескольких имен полей, выступающих в качестве подмножества переменных измерения диаграммы, создается подмножество всех возможных значений. |
| SalesGroup | Amount | Concat(Team) | Concat(TOTAL <SalesGroup> Team) | Concat(Team, ', ', 0) | Concat(TOTAL <SalesGroup> Team, '', 0) |
|---|---|---|---|---|---|
| East | 14000 | Delta | AlphaBetaDeltaGammaGamma | Delta | GammaGammaAlphaDeltaBeta |
| East | 20000 | BetaGammaGamma | AlphaBetaDeltaGammaGamma | GammaGammaBeta | GammaGammaAlphaDeltaBeta |
| East | 25000 | Alpha | AlphaBetaDeltaGammaGamma | Alpha | GammaGammaAlphaDeltaBeta |
| West | 14000 | Eta | EpsilonEtaThetaZeta | Eta | ZetaEpsilonEtaTheta |
| West | 17000 | Epsilon | EpsilonEtaThetaZeta | Epsilon | ZetaEpsilonEtaTheta |
| West | 19000 | Zeta | EpsilonEtaThetaZeta | Zeta | ZetaEpsilonEtaTheta |
| West | 23000 | Theta | EpsilonEtaThetaZeta | Theta | ZetaEpsilonEtaTheta |
| Пример | Результат |
|---|---|
| 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. |
| Concat(Team, '', 0) | Если для sort_weight задано значение 0, результаты не сортируются. |
| Concat(TOTAL <SalesGroup> Team, '', 0) | Если для sort_weight задано значение 0, результаты не сортируются. Кроме того, все строковые значения для всех значений Team объединяются, поскольку используется квалификатор TOTAL. |
Данные, используемые в примере:
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 '|');