Concat - funzione per grafici
Concat() viene utilizzata per unire le stringhe. La funzione restituisce la concatenazione di stringhe aggregata di tutti i valori dell'espressione valutata su ciascuna dimensione.
Sintassi:
Concat({[SetExpression] [DISTINCT] [TOTAL [<fld{, fld}>]]} string[, delimiter[, sort_weight]])
Tipo di dati restituiti: stringa
Argomenti:
Argomento | Descrizione |
---|---|
string |
L'espressione o il campo contenente la stringa da elaborare. |
delimiter | Ogni valore può essere separato dalla stringa trovata in delimiter. |
sort-weight |
L'ordine di concatenazione può essere determinato dal valore della dimensione sort-weight, se presente, con la stringa corrispondente al valore più basso che compare per primo nella concatenazione. |
SetExpression | Per impostazione predefinita, la funzione di aggregazione aggrega la serie di possibili record definiti dalla selezione. È possibile definire una serie di record alternativa mediante un'espressione Set Analysis. |
DISTINCT | Se la parola DISTINCT è riportata prima degli argomenti della funzione, i duplicati risultanti dalla valutazione degli argomenti della funzione vengono ignorati. |
TOTAL |
Se la parola TOTAL viene riportata prima degli argomenti della funzione, il calcolo verrà effettuato su tutti i valori possibili dati dalle selezioni correnti e non solo su quelli relativi al valore dimensionale attuale, vale a dire che verranno ignorate le dimensioni del grafico. Utilizzando TOTAL [<fld {.fld}>], dove il qualificatore TOTAL è seguito da un elenco di uno o più nomi di campo come sottogruppo delle variabili di dimensione del grafico, si crea un sottogruppo di tutti i valori possibili. |
Esempi e risultati:
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 |
Esempio | Risultato |
---|---|
Concat(Team) |
La tabella viene creata dalle dimensioni SalesGroup e Amount e dalle variazioni sulla misura Concat(Team). Ignorando il risultato di Totali, è necessario ricordare che sebbene esistano dati per otto valori di Team distribuiti tra due valori di SalesGroup, l'unico risultato della misura Concat(Team) che concatena più di un valore di stringa Team nella tabella è la riga contenente la dimensione Amount 20000, che restituisce il risultato BetaGammaGamma. Ciò si verifica perché esistono tre valori per Amount 20000 nei dati di input. Tutti gli altri risultati restano non concatenati quando la misura viene estesa tra le dimensioni perché esiste solo un valore di Team per ciascuna combinazione di SalesGroup e Amount. |
Concat(DISTINCT Team,', ') | Beta, Gamma perché il qualificatore DISTINCT significa che il risultato Gamma duplicato viene ignorato. Inoltre, l'argomento del delimitatore viene definito come virgola seguita da uno spazio. |
Concat (TOTAL <SalesGroup> Team) | Tutti i valori di stringa per tutti i valori di Team sono concatenati se viene utilizzato il qualificatore TOTAL. Con la selezione del campo <SalesGroup> specificata, vengono suddivisi i risultati nei due valori della dimensione SalesGroup. Per SalesGroupEast, i risultati sono AlphaBetaDeltaGammaGamma. Per SalesGroupWest, i risultati sono EpsilonEtaThetaZeta. |
Concat (TOTAL <SalesGroup> Team,';', Amount) | Aggiungendo l'argomento per sort-weight: Amount, i risultati vengono ordinati in base al valore della dimensione Amount. Il risultato diventa DeltaBetaGammaGammaAlpha e EtaEpsilonZEtaTheta. |
Dati utilizzati nell'esempio:
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 '|');