Concat - 圖表函數

Concat() 用來組合字串值。該函數傳回對每個維度評估之運算式的所有值的彙總字串串連。

Syntax:  

Concat({[SetExpression] [DISTINCT] [TOTAL [<fld{, fld}>]]} string[, delimiter[, sort_weight]])

Return data type: 字串

Arguments:  

引數 描述
string

包含待處理之字串的運算式或欄位。

delimiter 可用在 delimiter 找到的字串來將各個值隔開。
sort-weight

可以透過維度 sort-weight 的值來判定串連的順序,如果呈現,則對應於最低值的字串出現在串連的第一位.

SetExpression 依預設,彙總函數將彙總選項所定義的一組可能記錄。集合分析運算式可定義一組替代的記錄。
DISTINCT 如果 DISTINCT 這個字出現在函數引數之前,會忽略評估函數引數所產生的重複項目。
TOTAL

如果單字 TOTAL 位於函數引數之前,則會在提供現行選項的所有可能值上進行計算,而不僅僅是關於目前維度值的那些選項,也就是說,它會忽略圖表維度。

透過使用 TOTAL [<fld {.fld}>] (其中 TOTAL 限定詞後面是做為圖表維度變數子集之一或更多欄位名稱的清單),您可建立總可能值的子集。

定義彙總範圍

Examples and results:  

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)

表格是從維度 SalesGroupAmount 以及量值 Concat(Team) 的變異數建立而成。請注意,若忽略總計結果,即使有八個 Team 值的資料分布在兩個 SalesGroup 值之間,串連表格中多個 Team 字串值的量值 Concat(Team) 的唯一結果,是含有維度 Amount 20000 的列,而該列提供結果 BetaGammaGamma。這是因為輸入資料中 Amount 20000 有三個值。當量值跨越維度,則所有其他結果會維持未串連,因為每個 SalesGroupAmount 組合只有一個 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 的值排序。結果會變成 DeltaBetaGammaGammaAlphaEtaEpsilonZEtaTheta

範例中使用的資料:

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