Skip to main content
Announcements
NEW Customer Portal: Initial launch will improve how you submit Support Cases. FIND OUT MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Agrupar Valores de un Campo

Hola,

¿Cómo podría agrupar lo siguiente?:

Tengo una tabla con 3 campos que me muestra estos campos: Id, Pais, Prefijos y Consecutivos, necesito que me agrupe por cada prefijo los consecutivos, por ejemplo:

Id        Pais             Prefijo      Consecutivo

456     Colombia      57            1

456     Colombia      57            4

456     Africa           27            9

Por ahora tengo:  Id&','&Prefijo&'('&Consecutivo&')'  con esto me trae por línea cada registro:

456,57(1)

456,57(4)

456 27(9)


Pero requiero que me quede así:

456,57(1,4)

456 27(9)

Es decir, que no me deje la información del prefijo 57 repetido, sino que me lo muestre una sola vez con sus respectivos consecutivos.

Agradezco me guíen por favor.

1 Solution

Accepted Solutions
JoaquinLazaro
Partner - Specialist II
Partner - Specialist II

Hola Mónica:

La mezcla de las soluciones siempre es positiva, lo que he puesto yo combinado con lo que ha puesto Jordi ...

Tabla:

LOAD Id, Pais, Prefijo,

  '(' & MaxString(Consecutivo) & ')' as Consecutivo

Group by Id, Pais, Prefijo; 

LOAD Id,

          Pais,

          Prefijo,

          IF (Id = Previous(Id) and Pais = Previous(Pais) and Prefijo= Previous(Prefijo),

               Previous(Consecutivo) & ',' & Consecutivo,

               Consecutivo ) as Consecutivo;         

LOAD * INLINE [

    Id, Pais, Prefijo, Consecutivo

    456, colombia, 57, 1

    456, colombia, 57, 4

    456, africa, 27, 9

];

Genera los datos como tú querías.

Saludos

Joaquín

View solution in original post

7 Replies
sorrakis01
Specialist
Specialist

Hola Monica,

Eso se supone que lo quieres como resultado en el script?

Saludos,

Not applicable
Author

Hola Jordi,

Sí, requiero hacerlo desde el script para generarlo diario y me lo guarde en en un archivo.

Saludos.

JoaquinLazaro
Partner - Specialist II
Partner - Specialist II

Hola Mónica:

Intenta esto

LOAD Id,

          Pais,

          Prefijo,

          IF (Id = Previous(Id) and Pais = Previous(Pais) and Prefijo= Previous(Prefijo),

               Previous(Consecutivo) & ',' & Consecutivo,

               Consecutivo ) as Consecutivo

Saludos

Joaquín

sorrakis01
Specialist
Specialist

Hola Monica,

Disculpa que ayer no te lo publiqué:

Table1:

LOAD * INLINE [

    Id, Pais, Prefijo, Consecutivo

    456, Colombia, 57, 1

    456, Colombia, 57, 4

    456, Africa, 27, 9

];

Table2:

LOAD Pais & ',' & Prefijo & ',' & Concat(Consecutivo & ',') as Estado_Final

Resident Table1

Group by Pais,Prefijo;

Drop table Table1

Saludos

JoaquinLazaro
Partner - Specialist II
Partner - Specialist II

Hola Mónica:

La mezcla de las soluciones siempre es positiva, lo que he puesto yo combinado con lo que ha puesto Jordi ...

Tabla:

LOAD Id, Pais, Prefijo,

  '(' & MaxString(Consecutivo) & ')' as Consecutivo

Group by Id, Pais, Prefijo; 

LOAD Id,

          Pais,

          Prefijo,

          IF (Id = Previous(Id) and Pais = Previous(Pais) and Prefijo= Previous(Prefijo),

               Previous(Consecutivo) & ',' & Consecutivo,

               Consecutivo ) as Consecutivo;         

LOAD * INLINE [

    Id, Pais, Prefijo, Consecutivo

    456, colombia, 57, 1

    456, colombia, 57, 4

    456, africa, 27, 9

];

Genera los datos como tú querías.

Saludos

Joaquín

Not applicable
Author

Muchas gracias!, me dio la solución.

Not applicable
Author

Muchas gracias!