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

Contar y agrupar

Estas en el tema de Contar y agrupar en el foro de Bases de Datos General en Foros del Web. Buenas tardes a to2. De verdad que he estado mirando por el foro y he visto soluciones pero no he podido o no he sabido ...
  #1 (permalink)  
Antiguo 15/09/2010, 15:14
 
Fecha de Ingreso: octubre-2009
Mensajes: 14
Antigüedad: 14 años, 6 meses
Puntos: 0
Contar y agrupar

Buenas tardes a to2.

De verdad que he estado mirando por el foro y he visto soluciones pero no he podido o no he sabido hacerlo.

Tengo la siguiente tabla:

nombre1 nombre2 nombre3
A B C
A B D
C B D

y quisiera obtener un resultado como el que muestro a continuacion

nombre Total
A 2
B 3
C 2
D 2

si está en algún hilo, siento preguntarlo de nuevo pero no lo he logrado ver.

Saludos y gracias de antemano
  #2 (permalink)  
Antiguo 15/09/2010, 15:42
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Contar y agrupar

Código SQL:
Ver original
  1. SELECT nombre,
  2. COUNT(nombre)
  3. FROM
  4. (
  5.  SELECT nombre1 nombre FROM tabla
  6.  UNION ALL
  7.  SELECT nombre2 FROM tabla
  8.  UNION ALL
  9.  SELECT nombre3 FROM tabla
  10. ) AS tabla_resultante
  11. GROUP BY nombre;

No la he probado.

EDITO: Pensandolo bien, con UNION ALL tiene mas sentido. Pruebalo de ambas formas.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming

Última edición por huesos52; 15/09/2010 a las 15:50
  #3 (permalink)  
Antiguo 16/09/2010, 13:51
 
Fecha de Ingreso: octubre-2009
Mensajes: 14
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Contar y agrupar

Gracias por contestar, pero no me funciona
Si le pongo el código que me enviastes me da un error en esta línea

SELECT nombre1 nombre FROM tabla1

el motor de la base no puede encontrar nombre1 nombre


si le quito nombre

me ejecuta la consulta y me da el siguiente resultado

nombre expresion1001
access 12

cuando lo que necesito seria

a 3
b 3
c 3
d 3

me los suma todos

Gracias
  #4 (permalink)  
Antiguo 16/09/2010, 14:18
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Contar y agrupar

trabajas con access?

No lo habias dicho.

Esperemos que alguien te ayude.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #5 (permalink)  
Antiguo 16/09/2010, 14:30
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Contar y agrupar

Prueba esto:
SELECT t4.nom, SUM(t4.cont) total FROM ((SELECT nombre1 nom, count(nombre1) cont FROM `tutabla` group by nombre1)
union all
(SELECT nombre2, count(nombre2) FROM `tutabla` group by nombre2)
union all
(SELECT nombre3, count(nombre3) FROM `tutabla` group by nombre3))t4 GROUP BY t4.nom
  #6 (permalink)  
Antiguo 17/09/2010, 01:27
 
Fecha de Ingreso: octubre-2009
Mensajes: 14
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Contar y agrupar

Cita:
Iniciado por jurena Ver Mensaje
Prueba esto:
SELECT t4.nom, SUM(t4.cont) total FROM ((SELECT nombre1 nom, count(nombre1) cont FROM `tutabla` group by nombre1)
union all
(SELECT nombre2, count(nombre2) FROM `tutabla` group by nombre2)
union all
(SELECT nombre3, count(nombre3) FROM `tutabla` group by nombre3))t4 GROUP BY t4.nom

He probado lo que me has dicho y me sale lo siguiente al ejecutar la consulta:

"Error de sintaxis (falta operador) en la expresión de consulta 'SUM(t4.cont)total"

Me podrias ayudar

Gracias
  #7 (permalink)  
Antiguo 17/09/2010, 08:11
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Contar y agrupar

En access con una tabla llamada tabla y los campos que dices, me salió con esto:
SELECT [%$##@_Alias].nom, Sum([%$##@_Alias].cont) AS SumaDecont
FROM [SELECT nombre1 AS nom, count(nombre1) AS cont FROM `tabla` group by nombre1
UNION ALL
SELECT nombre2, count(nombre2) FROM `tabla` group by nombre2
UNION ALL SELECT nombre3, count(nombre3) FROM `tabla` group by nombre3]. AS [%$##@_Alias]
GROUP BY [%$##@_Alias].nom;
  #8 (permalink)  
Antiguo 17/09/2010, 10:08
 
Fecha de Ingreso: octubre-2009
Mensajes: 14
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Contar y agrupar

Cita:
Iniciado por jurena Ver Mensaje
En access con una tabla llamada tabla y los campos que dices, me salió con esto:
SELECT [%$##@_Alias].nom, Sum([%$##@_Alias].cont) AS SumaDecont
FROM [SELECT nombre1 AS nom, count(nombre1) AS cont FROM `tabla` group by nombre1
UNION ALL
SELECT nombre2, count(nombre2) FROM `tabla` group by nombre2
UNION ALL SELECT nombre3, count(nombre3) FROM `tabla` group by nombre3]. AS [%$##@_Alias]
GROUP BY [%$##@_Alias].nom;
Muchisimas gracias, era lo que buscaba

Etiquetas: agrupar, contar
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 04:17.