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) 的變異數建立而成。請注意,若忽略總計結果,即使有八個 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 維度值。針對 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 '|');