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

3 COUNT() de la misma tabla en la misma fila

Estas en el tema de 3 COUNT() de la misma tabla en la misma fila en el foro de Mysql en Foros del Web. Hola a todos: Tengo un problema, y es que no sé cómo escribir una consulta. La cuestión es la siguiente: Digamos que tenemos una tabla ...
  #1 (permalink)  
Antiguo 27/01/2012, 04:30
 
Fecha de Ingreso: diciembre-2011
Mensajes: 35
Antigüedad: 12 años, 4 meses
Puntos: 2
3 COUNT() de la misma tabla en la misma fila

Hola a todos:



Tengo un problema, y es que no sé cómo escribir una consulta. La cuestión es la siguiente:


Digamos que tenemos una tabla que se llama A:

Código:
AId A1 A2 ...
  1  X  X ...
  2  X  X ...
  3  X  X ...

Y tenemos, por otra parte, la tabla B:

Código:
BId  A B1 ...
  1  1  1 ...
  2  1  2 ...
  3  1  3 ...
  4  2  3 ...
  5  2  2 ...
  6  3  3 ...
  7  1  2 ...
  8  1  2 ...
  9  3  3 ...

De manera que tabla_B.A es el Id de la tabla A de la que "cuelga" el dato, mientras que B1 es el dato en cuestión que quiero agrupar... pero no de una manera normal.


Lo que quiero conseguir es un resultado tipo esto:


Código:
AId COUNT(B1=1) COUNT(B1=2) COUNT(B1=3) ...
  1      1           3           1      ...
  2      0           1           1      ...
  3      0           0           2      ...
Es decir: la columna B1 tendrá solamente valores entre 1 y 3 y quiero que se muestre en 3 columnas distintas el COUNT de cada uno de sus valores para cada uno de los valores de la tabla tabla_A.



Ha quedado claro?


Muchas gracias por adelantado!
  #2 (permalink)  
Antiguo 27/01/2012, 06:22
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, 4 meses
Puntos: 2658
Respuesta: 3 COUNT() de la misma tabla en la misma fila

Esto mismo lo han preguntado muchas veces. Una solución que se puede usar es:
Código MySQL:
Ver original
  1.     A 'Item A',
  2.     SUM(IF(B1=1, 1, 0)) 'B1 = 1',
  3.     SUM(IF(B1=2, 1, 0)) 'B1 = 2',
  4.     SUM(IF(B1=3, 1, 0)) 'B1 = 3'
  5. FROM tabla
__________________
¿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 27/01/2012, 09:21
 
Fecha de Ingreso: diciembre-2011
Mensajes: 35
Antigüedad: 12 años, 4 meses
Puntos: 2
Respuesta: 3 COUNT() de la misma tabla en la misma fila

Muchas gracias! Ha funcionado perfecto :)
  #4 (permalink)  
Antiguo 27/01/2012, 11: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, 4 meses
Puntos: 2658
Respuesta: 3 COUNT() de la misma tabla en la misma fila

__________________
¿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: count, distinto
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 02:38.