Ver Mensaje Individual
  #4 (permalink)  
Antiguo 26/09/2011, 13:04
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 jotaincubus:

Aun me queda la duda en el select, si realmente necesitas mostrar tantos campos o solo quieres mostrar el id_grupo y su total. podrías cambiar tu GROUP BY y dejar solamente el campo id_grupo, pero no te serviría si quieres mostrar más información, a ver si con un ejemplo me puedo explicar mejor. Supongamos que tienes los siguientes datos:

Código:
+------------+----------+---------+
| id_usuario | id_grupo | id_otro |
+------------+----------+---------+
|          1 |        5 | ok      |
|          1 |        4 | si      |
|          2 |        5 | no      |
|          3 |        5 | --      |
+------------+----------+---------+
Tu podrías hacer lo siguiente:

Código MySQL:
Ver original
  1. mysql> SELECT id_grupo, COUNT(*) FROM TuTabla GROUP BY id_grupo;
  2. +----------+----------+
  3. | id_grupo | COUNT(*) |
  4. +----------+----------+
  5. |        4 |        1 |
  6. |        5 |        3 |
  7. +----------+----------+
  8. 2 rows in set (0.00 sec)

Hasta aquí no hay problema, pues sólo estás mostrando un campo y agrupas por ese mismo campo, pero si necesitas mostrar también la información del campo id_otro pondrías algo como esto:

Código MySQL:
Ver original
  1. mysql> SELECT id_grupo, id_otro, COUNT(*) FROM TuTabla GROUP BY (id_grupo);
  2. +----------+---------+----------+
  3. | id_grupo | id_otro | COUNT(*) |
  4. +----------+---------+----------+
  5. |        4 | si      |        1 |
  6. |        5 | ok      |        3 |
  7. +----------+---------+----------+
  8. 2 rows in set (0.00 sec)

Observa sin embargo que los valores 'NO' y '--' NO APARECEN EN LA CONSULTA, pues al agrupar sólo muestra el primero de ellos.

No sé como necesitas al información, sería conveniente que nos dijeras si realmente necesitas mostrar toda la información o podrías dejarla como en el primer ejemplo.

Saludos
Leo.