Ver Mensaje Individual
  #6 (permalink)  
Antiguo 26/09/2011, 15:17
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Juntar INNER JOIN y COUNT

Hola de nuevo...

En estos momentos no se me ocurre alguna otra cosa más que hagas una subconsulta sobre la misma tabla que tiene tu información. Siguiendo con los datos que puse de ejemplo sería mas o menos así:

Código MySQL:
Ver original
  1. mysql> CREATE TABLE TuTabla (id_usuario INT, id_grupo INT, id_otro VARCHAR(2));
  2. Query OK, 0 rows affected (0.12 sec)
  3.  
  4. mysql> INSERT INTO TuTabla VALUES (1, 5, 'ok'), (1, 4, 'si'),
  5.     -> (2, 5, 'no'), (3, 5, '-- ');
  6. Query OK, 4 rows affected, 1 warning (0.03 sec)
  7. Records: 4  Duplicates: 0  Warnings: 1
  8.  
  9. mysql> SELECT * FROM TuTabla;
  10. +------------+----------+---------+
  11. | id_usuario | id_grupo | id_otro |
  12. +------------+----------+---------+
  13. |          1 |        5 | ok      |
  14. |          1 |        4 | si      |
  15. |          2 |        5 | no      |
  16. |          3 |        5 | --      |
  17. +------------+----------+---------+
  18. 4 rows in set (0.00 sec)
  19.  
  20. mysql> SELECT T1.id_usuario, T1.id_grupo, T1.id_otro, T2.total
  21.     -> FROM TuTabla T1
  22.     -> INNER JOIN
  23.     -> (SELECT id_grupo, COUNT(*) total FROM TuTabla GROUP BY id_grupo) T2
  24.     -> ON T1.id_grupo = T2.id_grupo;
  25. +------------+----------+---------+-------+
  26. | id_usuario | id_grupo | id_otro | total |
  27. +------------+----------+---------+-------+
  28. |          1 |        5 | ok      |     3 |
  29. |          1 |        4 | si      |     1 |
  30. |          2 |        5 | no      |     3 |
  31. |          3 |        5 | --      |     3 |
  32. +------------+----------+---------+-------+
  33. 4 rows in set (0.00 sec)

Observa la subconsulta marcada como T2... ahí agrupas por el campo id_grupo para obtener los totales... con el INNER JOIN asignas el total para cada grupo.

Si encuentro alguna otra forma más optima para hacer esto mismo la posteo mañana... por lo pronto dale un vistazo para ver si te sirve.

Saludos
Leo.

Saludos
Leo