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

hacer select count diferentes campos y discriminar por fecha

Estas en el tema de hacer select count diferentes campos y discriminar por fecha en el foro de Mysql en Foros del Web. Hola, espero estén bien. Tengo una tabla con la siguiente estructura: mysql> show columns from prueba; +---------+--------------+------+-----+-------------------+-----------------------------+ | Field | Type | Null | Key ...
  #1 (permalink)  
Antiguo 15/07/2013, 18:43
 
Fecha de Ingreso: julio-2013
Mensajes: 1
Antigüedad: 10 años, 9 meses
Puntos: 0
hacer select count diferentes campos y discriminar por fecha

Hola, espero estén bien.

Tengo una tabla con la siguiente estructura:

mysql> show columns from prueba;
+---------+--------------+------+-----+-------------------+-----------------------------+
| Field | Type | Null | Key | Default | Extra |
+---------+--------------+------+-----+-------------------+-----------------------------+
| id | bigint(20) | YES | MUL | NULL | |
| user | varchar(64) | YES | | NULL | |
| msg | varchar(160) | YES | | NULL | |
| status | tinyint(1) | YES | | NULL | |
| fecha | timestamp | NO | | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
| coment | varchar(60) | YES | | NULL | |
+---------+--------------+------+-----+-------------------+-----------------------------+

su función es que el usuario cuyo ID NO es consecutivo, da de alta, se le asigna un ID azaroso, el usuario pone comentarios y se guarda la fecha del sistema, puede mandar mensajes a otros usuarios etc, bueno el campo status es para poner una bandera de si ya fué despachado o no.

el asunto es que quiero hacer una consulta mediante la cual me diga si un usuario ha escrito el mismo comentario N veces en un lapso de 24 hrs para poder discriminar esos comentarios extras (flooding)

la idea del query sería:
id user mensaje status count(*)
123123 juan01 saludos a todos 1 2
434334 pepito sql es facil NULL 1
545454 _pelon www.forosdelweb.com 1 8

como podría hacer esto?

hasta ahorita he jugado con select user,mensaje, count(*) from prueba group by mensaje;

pero no da los resultados deseados :(
  #2 (permalink)  
Antiguo 16/07/2013, 01:12
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: hacer select count diferentes campos y discriminar por fecha

select user,msg, count(*) from prueba group by msg;

Si pones los nombres de campo bien debe darte el resultado que buscas, si a demas lo limitas por fecha tendrás el numero de mensajes ....

Código MySQL:
Ver original
  1. select user,msg, count(*) from prueba group by msg WHERE fecha>=DATE_SUB(NOW(), INTERVAL 1 DAY);

Esto te dara las repeticiones en las ultimas 24 horas....
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Etiquetas: campo, campos, count, fecha, select, sql, tabla
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 14:41.