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

Problema UNION resultos duplicados

Estas en el tema de Problema UNION resultos duplicados en el foro de Bases de Datos General en Foros del Web. Muy buenas, tengo un pequeño problema Realizado una consulta que basicamente su estructura es: Código: Select id count(*) .... .... .... .... UNION Select id ...
  #1 (permalink)  
Antiguo 13/11/2015, 05:54
 
Fecha de Ingreso: abril-2008
Mensajes: 41
Antigüedad: 16 años
Puntos: 0
Problema UNION resultos duplicados

Muy buenas, tengo un pequeño problema
Realizado una consulta que basicamente su estructura es:

Código:
Select id count(*)
....
....
....
....
UNION
Select id count(*)
.....
.....
.....
.....
La salida que tengo es:
04123158-> 32
04123158-> 17
04123412-> 36
04132010-> 1473

Me gustaria que saliese:
04123158-> 49
04123412-> 36
04132010-> 1473

Basicamente el problema es que cuando salen dos ids iguales con el union, quiero que sume el count

Como puedo solucionarlo??
Un saludete
  #2 (permalink)  
Antiguo 13/11/2015, 06:14
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Problema UNION resultos duplicados

Ese es el comportamiento normal y esperado del UNION: Cuando se encuentran dos registros con los mismos valores, genera un DISTICT por default.
Tu problema tiene mas de una solución. La mas simple es:
Código SQL:
Ver original
  1. SELECT ID, SUM(Total) Total
  2. FROM
  3.     (SELECT id, COUNT(*) Total
  4.     FROM ...
  5.     ...
  6.     UNION ALL
  7.     SELECT id, COUNT(*) Total
  8.     FROM ...
  9.     ...) Tabla
  10. GROUP BY ID
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 13/11/2015, 06:42
 
Fecha de Ingreso: abril-2008
Mensajes: 41
Antigüedad: 16 años
Puntos: 0
Respuesta: Problema UNION resultos duplicados

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Ese es el comportamiento normal y esperado del UNION: Cuando se encuentran dos registros con los mismos valores, genera un DISTICT por default.
Tu problema tiene mas de una solución. La mas simple es:
Código SQL:
Ver original
  1. SELECT ID, SUM(Total) Total
  2. FROM
  3.     (SELECT id, COUNT(*) Total
  4.     FROM ...
  5.     ...
  6.     UNION ALL
  7.     SELECT id, COUNT(*) Total
  8.     FROM ...
  9.     ...) Tabla
  10. GROUP BY ID
Perfecto gracias, me funciona muy bien!
Habria alguna forma, de realizar la misma consulta pero que me devuelva el resto de IDS pero con count 0. Haciendo otro union a todo lo anterior?
  #4 (permalink)  
Antiguo 13/11/2015, 06:48
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Problema UNION resultos duplicados

Necesitaríamos saber qué tablas consultas, y qué datos cuentas.
Usualmente sólo se puede obtener un COUNT() cero si hay un JOIN entre tablas, donde la primera tabla es tabla base y la segunda dependiente opcional.

Muestranos la query REAL y veremos.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: duplicados, select, union
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 12:55.