Ver Mensaje Individual
  #2 (permalink)  
Antiguo 18/01/2013, 12:24
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 meses
Puntos: 447
Respuesta: agrupar y obtener suma de varios cont

Hola Lordztein:

En realidad no estas tan errado en lo que intentas hacer, sin embargo hay algunos detalles que tienes que considerar. En primer lugar, la agrupación la tienes que hacer después de unir los campos, no antes... para que sólo te obtenga un total... segundo, hay que tener cuidado al hacer UNION's, ya que si no no especificas la palabra ALL y existen registros duplicados, SÓLO SE AGREGA UNA VEZ... podrías hacerlo así:

Código MySQL:
Ver original
  1. mysql> SELECT * FROM tabla;
  2. +------+----------+----------+----------+
  3. | id   | local1   | local2   | local3   |
  4. +------+----------+----------+----------+
  5. |    1 | nombre a | nombre b | nombre b |
  6. |    1 | nombre a | nombre a | nombre c |
  7. |    1 | nombre b | nombre a | nombre a |
  8. |    1 | nombre c | nombre a | nombre b |
  9. +------+----------+----------+----------+
  10. 4 rows in set (0.00 sec)
  11.  
  12. mysql> SELECT nom_local, COUNT(nom_local)
  13.     -> FROM
  14.     -> (  SELECT local1 nom_local
  15.     ->    FROM tabla
  16.     ->    UNION ALL
  17.     ->    SELECT local2 nom_local
  18.     ->    FROM tabla
  19.     ->    UNION ALL
  20.     ->    SELECT local3 nom_local
  21.     ->    FROM tabla
  22.     -> ) T GROUP BY 1;
  23. +-----------+------------------+
  24. | nom_local | COUNT(nom_local) |
  25. +-----------+------------------+
  26. | nombre a  |                6 |
  27. | nombre b  |                4 |
  28. | nombre c  |                2 |
  29. +-----------+------------------+
  30. 3 rows in set (0.00 sec)

Dale un vistazo y nos comentas.

Saludos
Leo.