Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » PostgreSQL »

[SOLUCIONADO] Eliminacion de repetidos con group by de mas de una tabla

Estas en el tema de Eliminacion de repetidos con group by de mas de una tabla en el foro de PostgreSQL en Foros del Web. Buenas tardes tengo la siguiente cuestión Poseo las tablas asociados (idsucdir,idasociado,iddir,...), directorio(iddir, nombre,paterno,materno,...) y referencias(iddir, iddirref,....) Deseo encontrar en directorio personas con el mismo nombre ...
  #1 (permalink)  
Antiguo 21/03/2013, 14:41
 
Fecha de Ingreso: marzo-2009
Mensajes: 6
Antigüedad: 15 años
Puntos: 1
Pregunta Eliminacion de repetidos con group by de mas de una tabla

Buenas tardes tengo la siguiente cuestión
Poseo las tablas
asociados (idsucdir,idasociado,iddir,...), directorio(iddir, nombre,paterno,materno,...) y referencias(iddir, iddirref,....)
Deseo encontrar en directorio personas con el mismo nombre paterno y materno realizo este Query:
Código SQL:
Ver original
  1. SELECT d.nombre,d.paterno,d.materno,COUNT(*) AS DUPLICADOS
  2. FROM directorio AS d
  3. GROUP BY d.nombre, d.paterno, d.materno
  4. HAVING COUNT(*)>1

Todo bien me saca los nombres y con un valor númerico los repetidos ahora le quise agregar mas columnas al select quedando asi:

Código SQL:
Ver original
  1. SELECT d.idsucdir, a.idasociado, d.nombre,d.paterno,d.materno,COUNT(*) AS DUPLICADOS
  2. FROM directorio AS d
  3. LEFT JOIN asociados AS a USING (idsucdir,iddir)
  4. GROUP BY d.idsucdir,a.idasociado,d.nombre, d.paterno, d.materno
  5. HAVING COUNT(*)>1

Sigue estando bien peroooooo me restringe los duplicados a los q poseen los mismos valores del select yo quiero q me restringa solo los primeros valores (nombre,paterno,materno) y que idsucdir e idasociado no los tome en cuenta que los muestre pero no los tome en cuenta y si no los meto al GROUP BY me dice: la columna «d.idsucdir» debe aparecer en la cláusula GROUP BY o ser usada en una función de agregación
Espero me puedan ayudar
  #2 (permalink)  
Antiguo 22/03/2013, 15:27
 
Fecha de Ingreso: marzo-2009
Mensajes: 6
Antigüedad: 15 años
Puntos: 1
De acuerdo Respuesta: Eliminacion de repetidos con group by de mas de una tabla

ya lo resolví, al estar leyendo me di cuenta que es imposible realizar un group by de solo algunos campos del select o son todos o nada entonces mejor decidí hacer una funciona PL/pgsql que primero me saque los repetidos (1er código) y después los uno con los demás campos mediante un ciclo FOR

Al final me muestra los usuarios repetidos y solo los repetidos en nombre y apellidos pero con los demás campos diferentes

Gracias a los q leyeron si quieren el código pues me dicen y lo copio ;)

Etiquetas: as, eliminacion, group, repetidos, tabla, valor
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:13.