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

count independientes

Estas en el tema de count independientes en el foro de Mysql en Foros del Web. hola! estoy intentando hacer dos COUNT de una misma tabla, pero no me sale, imagino algo así: Código: SELECT COUNT(u1.*), COUNT(u2.*) FROM usuario u1, usuario ...
  #1 (permalink)  
Antiguo 20/06/2011, 09:36
 
Fecha de Ingreso: marzo-2009
Mensajes: 509
Antigüedad: 15 años
Puntos: 17
count independientes

hola! estoy intentando hacer dos COUNT de una misma tabla, pero no me sale, imagino algo así:

Código:
SELECT COUNT(u1.*), COUNT(u2.*) FROM usuario u1, usuario u2 
WHERE u1.nombre ='Pepe' AND u2.nombre = 'Maria';
Obviamente no es correcto, ¿cómo podría hacer esto? GRACIAS!
  #2 (permalink)  
Antiguo 20/06/2011, 09:59
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 2 meses
Puntos: 447
Respuesta: count independientes

hola cucuru:

No sé si entendí correctamente que es lo que quieres hacer, pero por el tipo de consulta que estás poniendo como ejemplo creo que quieres contabilizar cuantos registros de una tabla corresponden a Pepe y cuantos a María, a reserva de que te expliques un poco mejor y que nos pongas algunos datos de ejemplo voy a suponer que tienes más o menos lo siguiente:

supongamos que tienes una tabla así:

Código:
usuario
----------
pepe
pepe
maria
pepe
si haces algo como esto:

Código MySQL:
Ver original
  1. select sum(if (usuario = 'pepe', 1, 0)) total_pepe,  
  2. sum(if (usuario = 'maria', 1, 0)) total_maria
  3. from tabla

obtendrías lo siguiente:

Código:
total_pepe  total_maria
----------  -----------
         3            1
Dale un vistazo a ver si es algo como esto lo que necesitas, y si no te sirve, entonces pon algunos datos de ejemplo para hacer pruebas.

Saludos
Leo

Última edición por leonardo_josue; 20/06/2011 a las 10:11
  #3 (permalink)  
Antiguo 20/06/2011, 10:26
Avatar de jahepi
Colaborador
 
Fecha de Ingreso: diciembre-2004
Ubicación: Querétaro
Mensajes: 1.124
Antigüedad: 19 años, 3 meses
Puntos: 43
Respuesta: count independientes

Hola cucuru !

También podrías utilizar la cláusula group by:

Código sql:
Ver original
  1. SELECT nombre, COUNT(*) AS total
  2. FROM catalogo
  3. WHERE nombre = 'pepe'
  4. OR nombre = 'maria'
  5. GROUP BY nombre

Un saludo y suerte !
__________________
Una contraseña es como la ropa interior. No deberías dejarlas afuera a la vista de otras personas, deberías cambiarla regularmente, y ni se te ocurra prestarla a extraños.
  #4 (permalink)  
Antiguo 21/06/2011, 07:46
 
Fecha de Ingreso: marzo-2009
Mensajes: 509
Antigüedad: 15 años
Puntos: 17
Respuesta: count independientes

Muchísimas gracias!!! las dos opciones funcionan perfectas! ahora, me gustaría rizar un poquito más el rizo pero creo que no se puede, a ver si es así...

Voy a poner un ejemplo:

Código:
mysql> select * from padre;
+-------------+----------------+
| nombrePadre | correoPadre    |
+-------------+----------------+
| Juan        | [email protected]  |
| Luis        | [email protected]  |
| Paqui       | [email protected] |
| Cristina    | [email protected]  |
+-------------+----------------+
4 rows in set (0.00 sec)

mysql> select * from hijo;
+------------+----------+
| nombreHijo | padre    |
+------------+----------+
| María      | Luis     |
| María      | Cristina |
| Pepe       | Juan     |
+------------+----------+
3 rows in set (0.00 sec)
Me gustaría extraer el correo elctrónico y número de padres de los niños que se llaman María.

Código:
mysql> select correoPadre, sum(if(nombreHijo = 'Maria',1,0)) from padre,hijo where nombreHijo='Maria' AND nombrePadre = padre;
+---------------+-----------------------------------+
| correoPadre   | sum(if(nombreHijo = 'Maria',1,0)) |
+---------------+-----------------------------------+
| [email protected] |                                 2 |
+---------------+-----------------------------------+
1 row in set (0.00 sec)

Me falta el correo de su madre, está claro que es porque sum trunca el resultado a una única fila (lo mismo me pasaría con la opción de GROUP BY), ¿podría obtener dos filas?

O quizá en lugar de dos filas un número variable de columnas "correoPadre", que sea 1, 2 o las que hiciera falta?

Gracias!
  #5 (permalink)  
Antiguo 21/06/2011, 08:46
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 2 meses
Puntos: 447
Respuesta: count independientes

Hola de nuevo cucuru:

No entendí qué es lo que quieres obtener con tu consulta, sería conveniente que nos dijeras a partir de los datos que pones de ejemplo qué es lo que quieres obtener como salida, es posible que exista alguna otra manera para obtener la consulta que no implique hacer los conteos como los estás haciendo.

Saludos
Leo.
  #6 (permalink)  
Antiguo 22/06/2011, 03:15
 
Fecha de Ingreso: marzo-2009
Mensajes: 509
Antigüedad: 15 años
Puntos: 17
Busqueda Respuesta: count independientes

Hola, te cuento:

a partir de lo que tengo quiero a partir de nombreHijo obtener correoPadre y el número de padres que tiene, podría ser 1,2,3,4... (quizá el ejemplo no es muy bueno para eso, pero el número de padres puede ser cualquiera),

Según lo he pensado yo, el número de filas que aparece como "numero de padres", es decir, si tiene dos padres, en la primera

y si fueran 3

Lo estoy planteando mal, verdad???


gracias!
  #7 (permalink)  
Antiguo 22/06/2011, 08:03
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 2 meses
Puntos: 447
Respuesta: count independientes

Hola de nuevo cucuru:

Sigo sin entender muy bien la lógica de tu consulta, pero bueno eso es cosa aparte:

si entendí, la consulta que quieres sería más o menos así:

Código MySQL:
Ver original
  1. select correoPadre, (select count(*) from hijo h2 where h2.nombreHijo = h.nombreHijo) total
  2. from padre p  
  3. left join hijo h on p.nombrePadre = h.Padre

Con los datos que pones de ejemplo el resultado sería el siguiente:

Código:
correoPadre     total 
--------------  ------
[email protected]        2
[email protected]        2
[email protected]        1
[email protected]       0
es decir, cris es madre de maría, y maría tiene dos padres, Luis es padre de maría y maría tiene dos padres, juan es padre de Pepe y pepe solo tiene un padre y
Paqui no tiene ningún hijo.

Dale un vistazo a ver si es lo que necesitas.

Saludos
Leo.
  #8 (permalink)  
Antiguo 22/06/2011, 09:31
 
Fecha de Ingreso: marzo-2009
Mensajes: 509
Antigüedad: 15 años
Puntos: 17
Respuesta: count independientes

Justo lo que necesitaba muchísimas gracias!!!

Etiquetas: count, independientes
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 11:27.