Concat- 图表函数
Concat() 用于组合字符串值。该函数用于返回通过每个维度计算的所有表达式值的聚合字符串串联。
Concat({[SetExpression] [DISTINCT] [TOTAL [<fld{, fld}>]]} string[, delimiter[, sort_weight]])
返回数据类型: 字符串
| 参数 | 描述 |
|---|---|
| string |
表达式或字段,其中包含要处理的字符串。 |
| delimiter | 每个值均由delimiter内的字符串分隔。 |
| sort_weight |
串联的顺序可以由维度 sort_weight 的值(如果存在)决定,对应于最低值的字符串在串联中首先出现。当使用 0 作为 sort_weight 参数值时,不对输出应用排序。如果省略 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 值中,但表中唯一将多个 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 的两个值。对于 SalesGroup East,结果为 AlphaBetaDeltaGammaGamma。对于 SalesGroup West,结果为 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 时,结果不排序。此外,由于使用了 TOTAL 限定符,Team 所有值的所有字符串值都将被串联。 |
示例中使用的数据:
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 '|');