Concat — funkcja wykresu
Funkcja Concat() służy do łączenia wartości ciągów znaków. Funkcja ta zwraca zagregowaną konkatenację ciągów znaków ze wszystkich wartości wyrażenia obliczonych dla poszczególnych wymiarów.
Składnia:
Concat({[SetExpression] [DISTINCT] [TOTAL [<fld{, fld}>]]} string[, delimiter[, sort_weight]])
Typ zwracanych danych: ciąg znaków
Argumenty:
Argument | Opis |
---|---|
string |
Wyrażenie lub pole zawierające ciąg znaków do przetworzenia. |
delimiter | Wartości mogą być rozdzielane ciągiem znaków określonym argumentem delimiter. |
sort-weight |
Kolejność konkatenacji można określić opcjonalnym argumentem wymiaru sort-weight. Ciąg znaków odpowiadający najniższej wartości sortowania będzie występować na początku konkatenacji.. |
SetExpression | Funkcja agregacji będzie domyślnie dokonywać agregacji na zbiorze możliwych wierszy zdefiniowanym przez selekcję. Alternatywny zestaw wierszy można zdefiniować za pomocą wyrażenia analizy zestawów. |
DISTINCT | Jeśli przed argumentami funkcji występuje słowo DISTINCT, wówczas duplikaty wynikające z wyników obliczenia argumentów funkcji są pomijane. |
TOTAL |
Jeśli słowo TOTAL występuje przed argumentami funkcji, wówczas obliczenie jest wykonywane względem wszystkich możliwych wartości z uwzględnieniem bieżących selekcji, nie tylko tych należących do bieżącej wartości wymiaru, to znaczy z pominięciem wymiarów wykresu. Korzystając z polecenia TOTAL [<fld {.fld}>], gdzie po kwalifikatorze TOTAL podana jest lista nazw pól stanowiących podzbiór zmiennych wymiarów wykresu, można utworzyć podzbiór wszystkich możliwych wartości. |
Przykłady i wyniki:
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 |
Przykład | Wynik |
---|---|
Concat(Team) |
Tabela została utworzona na podstawie wymiarów SalesGroup i Amount oraz odchyleń od miary Concat(Team). Ignorując wyniki Totals, należy zauważyć, że nawet jeśli dostępne są dane dla ośmiu wartości w kolumnie Team podzielonych względem dwóch wartości w kolumnie SalesGroup, jedyny wynik miary Concat(Team), który dokonuje konkatenacji więcej niż jednej wartości ciągu Team w tej tabeli, jest w wierszu zawierającym wymiar Amount o wartości 20000, co zwraca wynik BetaGammaGamma. Dzieje się tak, ponieważ występują trzy wartości dla wymiaru Amount 20000 w danych wejściowych. Wszystkie pozostałe wyniki nie zostają poddane konkatenacji, gdy miara obejmuje wiele wymiarów, ponieważ jest tylko jedna wartość Team dla każdej kombinacji wymiarów SalesGroup i Amount. |
Concat(DISTINCT Team,', ') | Beta, Gamma, ponieważ kwalifikator DISTINCT sprawia, że powtarzający się wynik Gamma zostaje zignorowany. Ponadto argument ogranicznika jest zdefiniowany jako przecinek, po którym następuje spacja. |
Concat (TOTAL <SalesGroup> Team) | Wszystkie wartości ciągów dla wszystkich wartości Team są poddane konkatenacji, jeśli zastosowany został kwalifikator TOTAL. W przypadku wyboru pola <SalesGroup> wyniki zostają podzielone między dwie wartości wymiaru SalesGroup. W przypadku SalesGroupEast zwracane są wyniki AlphaBetaDeltaGammaGamma. W przypadku SalesGroupWest zwracane są wyniki EpsilonEtaThetaZeta. |
Concat (TOTAL <SalesGroup> Team,';', Amount) | Dodanie argumentu sort-weight: Amount powoduje, że wyniki są uporządkowane według wartości wymiaru Amount. Zwracane są zatem wyniki DeltaBetaGammaGammaAlpha i EtaEpsilonZEtaTheta. |
Dane zastosowane w przykładzie:
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 '|');