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.
Concat({[SetExpression] [DISTINCT] [TOTAL [<fld{, fld}>]]} string[, delimiter[, sort_weight]])
Typ zwracanych danych: ciąg znaków
| 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że być określona przez wartość wymiaru sort-weight, jeśli występuje, przy czym ciąg znaków odpowiadający najniższej wartości pojawia się jako pierwszy w 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. |
| 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 jest tworzona na podstawie wymiarów SalesGroup i Amount oraz wariantów miary Concat(Team). Ignorując wynik Totals, należy zauważyć, że chociaż istnieją dane dla ośmiu wartości Team rozłożonych na dwie wartości SalesGroup, jedynym wynikiem miary Concat(Team) konkatenującym więcej niż jedną wartość ciągu znaków Team w tabeli jest wiersz zawierający wymiar Amount 20000, który daje wynik BetaGammaGamma. Wynika to z faktu, że w danych wejściowych istnieją trzy wartości dla Amount 20000. Wszystkie pozostałe wyniki pozostają nieskonkatenowane, gdy miara jest rozciągnięta na wymiary, ponieważ dla każdej kombinacji SalesGroup i Amount istnieje tylko jedna wartość Team. |
| Concat(DISTINCT Team,', ') | Beta, Gamma, ponieważ kwalifikator DISTINCT oznacza, że zduplikowany wynik Gamma jest pomijany. Ponadto argument delimiter jest zdefiniowany jako przecinek, po którym następuje spacja. |
| Concat (TOTAL <SalesGroup> Team) | Wszystkie wartości ciągów znaków dla wszystkich wartości Team są konkatenowane, jeśli używany jest kwalifikator TOTAL. Po określeniu wyboru pola <SalesGroup> wyniki są dzielone na dwie wartości wymiaru SalesGroup. Dla SalesGroup East wynikami są AlphaBetaDeltaGammaGamma. Dla SalesGroup West wynikami są EpsilonEtaThetaZeta. |
| Concat (TOTAL <SalesGroup> Team,';', Amount) | Po dodaniu argumentu dla sort-weight: Amount wyniki są porządkowane według wartości wymiaru Amount. Wynikami stają się DeltaBetaGammaGammaAlpha i EtaEpsilonZEtaTheta. |
Dane użyte 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 '|');