Concat - función de gráfico
Concat() se utiliza para combinar valores de cadena. Esta función devuelve la concatenación agregada de cadenas de todos los valores de la expresión que se evalúan en cada dimensión.
Sintaxis:
Concat({[SetExpression] [DISTINCT] [TOTAL [<fld{, fld}>]]} string[, delimiter[, sort_weight]])
Tipo de datos que devuelve: cadena
Argumentos:
Argumento | Descripción |
---|---|
string |
La expresión o campo que contiene la cadena que se ha de procesar. |
delimiter | Cada valor puede estar separado por la cadena que se encuentra en delimiter. |
sort-weight |
El orden de concatenación puede ir determinado por el valor de la dimensión sort-weight, si está presente, con la cadena correspondiente al valor más bajo que aparece primero en la concatenación. |
SetExpression | De forma predeterminada, la función de agregación agregará sobre el conjunto de registros posibles definidos por la selección. Se puede definir un conjunto alternativo de registros mediante una expresión de análisis de conjuntos. |
DISTINCT | Si la palabra DISTINCT aparece antes de los argumentos de la función, los duplicados resultantes de evaluar los argumentos de la función se descartan. |
TOTAL |
Si la palabra TOTAL aparece antes de los argumentos de la función, el cálculo se realiza sobre todos los valores posibles dadas las selecciones actuales y no solo aquellas que pertenecen al valor dimensional actual, es decir, no tiene en cuenta las dimensiones del gráfico. Usar TOTAL [<fld {.fld}>], donde al cualificador TOTAL le sigue una lista de uno o más nombres de campo como un subconjunto de las variables de dimensión del gráfico, crea un subconjunto de los valores totales posibles. |
Ejemplos y resultados:
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 |
Ejemplo | Resultado |
---|---|
Concat(Team) |
La tabla se construye a partir de las dimensiones SalesGroup y Amount, y las variaciones en la medida Concat(Team). Ignorando el resultado de los Totales, tenga en cuenta que aunque hay datos para ocho valores de Team distribuidos en dos valores de SalesGroup, el único resultado de la medida Concat(Team) que concatena más de un valor de cadena Team en la tabla es la fila que contiene la dimensión Amount, que da como resultado BetaGammaGamma. Esto es porque hay tres valores para Amount 20000 en los datos de entrada. Todos los demás resultados permanecen sin concatenar cuando la medida se extiende a lo largo de las dimensiones porque solo hay un valor de Team para cada combinación de SalesGroup y Amount. |
Concat(DISTINCT Team,', ') | Beta, Gamma, porque el cualificador DISTINCT significa que el resultado Gamma duplicado no se tiene en cuenta. Además, el argumento delimitador se define como una coma seguida por un espacio. |
Concat (TOTAL <SalesGroup> Team) | Todos los valores de cadena de todos los valores de Team se concatenan si se utiliza el cualificador TOTAL. Con la selección de campos <SalesGroup> especificada, esto divide los resultados en los dos valores de la dimensión SalesGroup. Para SalesGroupEast, los resultados son AlphaBetaDeltaGammaGamma. Para SalesGroupWest, los resultados son EpsilonEtaThetaZeta. |
Concat (TOTAL <SalesGroup> Team,';', Amount) | Añadiendo el argumento para sort-weight: Amount, los resultados se ordenan por el valor de la dimensión. Amount. Los resultados son DeltaBetaGammaGammaAlpha y EtaEpsilonZEtaTheta. |
Datos utilizados en el ejemplo:
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 '|');