elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  Bases de Datos (Moderador: Carloswaldo)
| | | |-+  query con doble count
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: query con doble count  (Leído 1,889 veces)
basickdagger


Desconectado Desconectado

Mensajes: 646


System.out.println("this is weird as fuck");


Ver Perfil
query con doble count
« en: 28 Enero 2015, 23:01 »

hola tengo una tabla con dos campos distintos, por ejemplo:

RevisionMensaje
Pendienteenviado
Pendienteenviado
Inapropiado enviado
Inapropiado enviado
Pendienteenviado
Inapropiado enviado
Respondidoproceso

deseo contar los mensajes  inapropiados y contar los mensajes enviados, pero en una misma consulta.


Código
  1. SELECT COUNT( revision ) AS inapropiadas
  2. FROM mensajes
  3. WHERE revision =  "Inapropiado";
  4.  
  5. SELECT COUNT( mensaje ) AS num_mensajes
  6. FROM mensajes
  7. WHERE mensaje =  "enviado";
  8.  

saludos!


En línea

Usuario Invitado


Desconectado Desconectado

Mensajes: 625



Ver Perfil
Re: query con doble count
« Respuesta #1 en: 29 Enero 2015, 13:45 »

Código
  1. SELECT COUNT(r.id_revision) AS 'Revisiones inapropiadas',
  2. COUNT(m.id_mensaje) AS 'Mensajes enviados'
  3. FROM Revision r, Mensaje m
  4. WHERE r.revision = 'Inapropiado' AND m.mensaje = 'enviado';


« Última modificación: 29 Enero 2015, 13:49 por Gus Garsaky » En línea

"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein
HdM


Desconectado Desconectado

Mensajes: 1.674



Ver Perfil
Re: query con doble count
« Respuesta #2 en: 29 Enero 2015, 16:20 »

Sólo hay una tabla...

Si he entendido bien, podría quedar así:

Código
  1. SELECT revision AS estado,COUNT( revision ) AS total
  2.  FROM mensajes
  3. WHERE revision =  "Inapropiado"
  4. GROUP BY revision
  5.  
  6. UNION
  7.  
  8. SELECT mensaje, COUNT( mensaje )
  9.  FROM mensajes
  10. WHERE mensaje =  "enviado"
  11. GROUP BY mensaje

Saludos.
En línea

- Nice to see you again -
MinusFour
Colaborador
***
Desconectado Desconectado

Mensajes: 4.935


I'm fourth.


Ver Perfil WWW
Re: query con doble count
« Respuesta #3 en: 29 Enero 2015, 17:03 »

Tambien lo deberias poder hacer asi:

Código
  1. SELECT COUNT(IF(mensaje = 'enviado', 1, NULL)) AS enviados,
  2. COUNT(IF(revision = 'Inapropiado', 1, NULL)) AS inapropiados
  3. FROM mensajes

Aunque puede ser un poco mas lento que las otras queries, dependiendo de la estructura de tu base de datos.
En línea

Usuario Invitado


Desconectado Desconectado

Mensajes: 625



Ver Perfil
Re: query con doble count
« Respuesta #4 en: 29 Enero 2015, 17:08 »

Leí mal xD. Teniendo en cuenta tu tabla, lo haría con unas subconsultas sencillas:

Código
  1. SELECT
  2. (SELECT COUNT(rev_state) FROM revisions WHERE rev_state = 'inapropiado') AS 'Mensajes inapropiados',
  3. (SELECT COUNT(message_state) FROM revisions WHERE message_state = 'enviado') AS 'Mensajes enviados'

Salida:

En línea

"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein
basickdagger


Desconectado Desconectado

Mensajes: 646


System.out.println("this is weird as fuck");


Ver Perfil
Re: query con doble count
« Respuesta #5 en: 31 Enero 2015, 00:20 »

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!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Argument count
PHP
Wdeah 2 1,250 Último mensaje 17 Diciembre 2006, 23:32
por Ertai
User Count v.1.0.1
Scripting
.Undertaker. 0 1,287 Último mensaje 23 Septiembre 2007, 23:15
por .Undertaker.
Forms.count [DUDA]
Programación Visual Basic
.:BlackCoder:. 2 1,741 Último mensaje 4 Junio 2010, 08:52
por .:BlackCoder:.
¿Selecionar el Max() de una función Count()? « 1 2 »
Bases de Datos
DanteInfernum 11 7,113 Último mensaje 25 Octubre 2013, 22:54
por DanteInfernum
cambiar COUNT vacio por 0
Bases de Datos
basickdagger 3 1,244 Último mensaje 11 Junio 2015, 16:06
por Carloswaldo
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines