Concat - funkcja wykresu
Ostatnia aktualizacja: 7.10.2026
Funkcja Concat() służy do łączenia ciągów znaków. Funkcja 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ż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. Gdy 0 jest używane jako wartość argumentu sort_weight, sortowanie nie jest stosowane do danych wyjściowych. 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 rekordów zdefiniowanym przez daną selekcję. Alternatywny zestaw wierszy można zdefiniować za pomocą wyrażenia analizy zestawów. |
| distinct | Jeśli przed wyrażeniem występuje słowo distinct, wówczas wszystkie duplikaty 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. Po kwalifikatorze TOTAL może następować lista zawierająca co najmniej jedną nazwę pola w nawiasach trójkątnych <fld>. Te nazwy pól powinny być podzbiorem zmiennych wymiaru wykresu. |
| Przykład | Wynik |
|---|---|
| Concat(Team) |
Tabela została utworzona na podstawie wymiarów SalesGroup i Amountoraz 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) | Po dodaniu argumentu dla sort_weight: Amount wyniki są uporządkowane według wartości wymiaru Amount. Zwracane są zatem wyniki DeltaBetaGammaGammaAlpha i EtaEpsilonZEtaTheta. |
| Concat(Team, '', 0) | Gdy dla sort_weight ustawiono wartość 0, wyniki nie są sortowane. |
| Concat(TOTAL <SalesGroup> Team, '', 0) | Gdy sort_weight jest ustawione na 0, wyniki nie są sortowane. Ponadto wszystkie wartości ciągów znaków dla wszystkich wartości Team są łączone, ponieważ użyto kwalifikatora TOTAL. |
Dane zastosowane w przykładach:
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 '|');
| 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 |