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. Gdy jako wartość argumentu sort_weight zostanie użyte 0, sortowanie nie jest stosowane do wyniku. Jeśli argument sort_weight zostanie pominięty, funkcja domyślnie stosuje sortowanie alfanumeryczne. |
| 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) | Concat(Team, ', ', 0) | Concat(TOTAL <SalesGroup> Team, '', 0) |
|---|---|---|---|---|---|
| East | 14000 | Delta | AlphaBetaDeltaGammaGamma | Delta | GammaGammaAlphaDeltaBeta |
| East | 20000 | BetaGammaGamma | AlphaBetaDeltaGammaGamma | GammaGammaBeta | GammaGammaAlphaDeltaBeta |
| East | 25000 | Alpha | AlphaBetaDeltaGammaGamma | Alpha | GammaGammaAlphaDeltaBeta |
| West | 14000 | Eta | EpsilonEtaThetaZeta | Eta | ZetaEpsilonEtaTheta |
| West | 17000 | Epsilon | EpsilonEtaThetaZeta | Epsilon | ZetaEpsilonEtaTheta |
| West | 19000 | Zeta | EpsilonEtaThetaZeta | Zeta | ZetaEpsilonEtaTheta |
| West | 23000 | Theta | EpsilonEtaThetaZeta | Theta | ZetaEpsilonEtaTheta |
| Przykład | Wynik |
|---|---|
| Concat(Team) |
Tabela jest tworzona z wymiarów SalesGroup i Amount oraz wariacji na temat miary Concat(Team). Ignorując wynik sum (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), który konkatenuje więcej niż jedną wartość ciągu znaków Team w tabeli, jest wiersz zawierający wymiar Amount 20000, co daje wynik BetaGammaGamma. Wynika to z faktu, że w danych wejściowych istnieją trzy wartości dla Amount 20000. Wszystkie inne wyniki pozostają nieskonkatenowane, gdy miara jest rozpięta na wymiary, ponieważ istnieje tylko jedna wartość Team dla każdej kombinacji SalesGroup i Amount. |
| Concat(DISTINCT Team,', ') | Beta, Gamma. ponieważ kwalifikator DISTINCT oznacza, że zduplikowany wynik Gamma jest ignorowany. Ponadto argument ogranicznika jest zdefiniowany jako przecinek ze spacją. |
| Concat (TOTAL <SalesGroup> Team) | Wszystkie wartości ciągu znaków dla wszystkich wartości Team są konkatenowane, jeśli użyty zostanie kwalifikator TOTAL. Po określeniu wyboru pola <SalesGroup>, dzieli to wyniki na dwie wartości wymiaru SalesGroup. Dla SalesGroupEast wyniki to AlphaBetaDeltaGammaGamma. Dla SalesGroupWest wyniki to EpsilonEtaThetaZeta. |
| Concat (TOTAL <SalesGroup> Team,';', Amount) | Dodając argument dla sort_weight: Amount, wyniki są sortowane według wartości wymiaru Amount. Wyniki stają się DeltaBetaGammaGammaAlpha i EtaEpsilonZEtaTheta. |
| Concat(Team, '', 0) | Gdy sort_weight ma wartość 0, wyniki nie są sortowane. |
| Concat(TOTAL <SalesGroup> Team, '', 0) | Gdy sort_weight ma wartość 0, wyniki nie są sortowane. Ponadto wszystkie wartości ciągu znaków dla wszystkich wartości Team są konkatenowane, ponieważ użyto kwalifikatora TOTAL. |
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 '|');