Concat — функция диаграммы
Функция 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 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. |
| 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 '|');