hola tengo una tabla con dos campos distintos, por ejemplo:
Revision | Mensaje |
Pendiente | enviado |
Pendiente | enviado |
Inapropiado | enviado |
Inapropiado | enviado |
Pendiente | enviado |
Inapropiado | enviado |
Respondido | proceso |
deseo contar los mensajes inapropiados y contar los mensajes enviados, pero en una misma consulta.
SELECT COUNT( revision ) AS inapropiadas
FROM mensajes
WHERE revision = "Inapropiado";
SELECT COUNT( mensaje ) AS num_mensajes
FROM mensajes
WHERE mensaje = "enviado";
saludos!
SELECT COUNT(r.id_revision) AS 'Revisiones inapropiadas',
COUNT(m.id_mensaje) AS 'Mensajes enviados'
FROM Revision r, Mensaje m
WHERE r.revision = 'Inapropiado' AND m.mensaje = 'enviado';
Sólo hay una tabla...
Si he entendido bien, podría quedar así:
SELECT revision AS estado,COUNT( revision ) AS total
FROM mensajes
WHERE revision = "Inapropiado"
GROUP BY revision
UNION
SELECT mensaje, COUNT( mensaje )
FROM mensajes
WHERE mensaje = "enviado"
GROUP BY mensaje
Saludos.
Tambien lo deberias poder hacer asi:
SELECT COUNT(IF(mensaje = 'enviado', 1, NULL)) as enviados,
COUNT(IF(revision = 'Inapropiado', 1, NULL)) as inapropiados
FROM mensajes
Aunque puede ser un poco mas lento que las otras queries, dependiendo de la estructura de tu base de datos.
Leí mal xD. Teniendo en cuenta tu tabla, lo haría con unas subconsultas sencillas:
select
(select count(rev_state) from revisions where rev_state = 'inapropiado') as 'Mensajes inapropiados',
(select count(message_state) from revisions where message_state = 'enviado') as 'Mensajes enviados'
Salida:
(http://i.imgur.com/UKzDxPM.png)
Excelente me funcionó a la perfección Gus Garsaky, pero estoy seguro q necesito leer mas sobre subconsultas e UNION... :xD
gracias por sus respuestas...
Saludos!