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 限定符后跟一个或多个字段名称作为图表维度变量的子集的列表),您可以创建总可能值的子集。 |
| 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) 的变体构建而成。忽略总计结果,请注意,尽管有分布在两个 SalesGroup 值中的八个 Team 值的数据,但在表中串联了多个 Team 字符串值的度量 Concat(Team) 的唯一结果是包含维度 Amount 20000 的行,其结果为 BetaGammaGamma。这是因为在输入数据中,Amount 20000 有三个值。当度量跨维度分布时,所有其他结果保持未串联状态,因为对于 SalesGroup 和 Amount 的每种组合,只有一个 Team 值。 |
| Concat(DISTINCT Team,', ') | Beta, Gamma。因为 DISTINCT 限定符意味着复制的 Gamma 结果将被忽略。此外,分隔符参数被定义为逗号后跟一个空格。 |
| Concat (TOTAL <SalesGroup> Team) | 如果使用了 TOTAL 限定符,则所有 Team 值的所有字符串值都将被串联。通过指定字段选择 <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 '|');