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 '|');