Skip to main content
Announcements
Join us at Qlik Connect for 3 magical days of learning, networking,and inspiration! REGISTER TODAY and save!
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

Eliminar duplicados

Hola saludos;

Estoy Comenzando con Qlick y se me presenta el problema siguiente;

Tengo una tabla con tres campos ID, año Y OTRO

ID año OTR

1 2015  A

1 2017  B

1 2013  C

2 2016  H

2 2015  F

Quiero quedarme solo con registros con ID distintos pero con el mayor año, debería obtener:

año ID OTRO

1 2017  B

2 2016  H

Agradecería si alguien puede indicarme de como hacerlo.

5 Replies
hector_munoz
Specialist
Specialist

Hola Francisco,

Un truco muy simple es quedarte con las máximas claves (año e ID) y luego hacer un LEFT JOIN con el resto de información del registro:

FINAL:
LOAD          ID,

                    Max(año) AS año

FROM         fichero.csv

GROUP BY ID;

LEFT JOIN (FINAL)

LOAD         ID,

                   año,

                   OTRO

FROM        fichero.csv;

Espero que te sirva...

Saludos,

H

Anonymous
Not applicable
Author

Muchas gracias HectorLo probaré el Lunes ya que no dispongo de mi equipo en este momento, quisiera que me indicaras si lo que voy a hacer es correcto;La información está en una tabla excel así que1) hago un Load a esa tabla y lo etiqueto como fuente:fuente:load.....A partir de ahí pondré el código que me has indicado pero en lugar de FROM supongo que tengo que poner resident, quedaría mas o meno así: 

FINAL:

LOAD          ID,

                    Max(año) AS año

//FROM         fichero.csv

resident fuenteGROUP BY ID;

 

LEFT JOIN (FINAL)

LOAD         ID,

                   año,

                   OTRO

//FROM        fichero.csv;

resident fuente;

Gracias y en cuanto lo pruebe te comento el resultado vía comunidad Qlick En domingo, 10 de junio de 2018 14:33:55 CEST, Muñoz Héctor <qcwebmaster@qlikview.com> escribió:

|

|

Eliminar duplicados

reply from Muñoz Héctor in Qlik en Español - View the full discussion

Hola Francisco,

 

Un truco muy simple es quedarte con las máximas claves (año e ID) y luego hacer un LEFT JOIN con el resto de información del registro:

 

FINAL:

LOAD          ID,

                    Max(año) AS año

FROM         fichero.csv

GROUP BY ID;

 

LEFT JOIN (FINAL)

LOAD         ID,

                   año,

                   OTRO

FROM        fichero.csv;

 

Espero que te sirva...

 

Saludos,

H

Reply to this message by replying to this email, or go to the message on Qlik Community

Start a new discussion in Qlik en Español by email or at Qlik Community

Following Eliminar duplicados in these streams: Inbox

© 1993-2018 QlikTech International AB | Copyright & Trademarks | Privacy | Terms of Use | Software EULA

Anonymous
Not applicable
Author

Gracias de nuevo Hector

He podido probar to solución y casi funciona , el fichero fuente es una hoja excel y el resultado es el siguiente

fichero original

ID año OTR

1 2015  A

1 2017  B

1 2013  C

2 2016  H

2 2015  F

resultado

1 2017 B

2 2017 H

es decir toma para todos los registros el mayor año de todos no el mayor año de cada uno.

El resultado que busco es:

1 2017 B

2 2016 H

En realidad como solo me interesan esos dos campos obtengo el mismo resultado erróneo sin utilizar LEFT JOIN

Anonymous
Not applicable
Author

Perdon Hector si funciona, la tabla real tenia mas de 6000 registros y yo suponia que el año mayor no era igual en todos, me he metido en el fichero fuente y he eliminado algunas filas para que no todos tengan el mismo mayor año y funciona pero de la siguiente manera:

Data:

LOAD EMP_ID,

     AÑO

FROM fichero excel;

New:

NoConcatenate

LOAD EMP_ID,

MAX(AÑO) AS AÑO

Resident Data

Group by EMP_ID

Order by EMP_ID;


DROP Table Data;

hector_munoz
Specialist
Specialist

Me alegro!