Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 统计间隔内选定列中具有相同值的记录数_Mysql - Fatal编程技术网

Mysql 统计间隔内选定列中具有相同值的记录数

Mysql 统计间隔内选定列中具有相同值的记录数,mysql,Mysql,我试图确定在15分钟内是否有超过5封相同主题和电子邮件发送 我目前有如下疑问: SELECT frommail, SUBJECT, message, count(*) AS count FROM compose GROUP BY frommail, SUBJECT, message; 但这将返回该表中所有相同记录的计数,但如果计数在任何15分钟间隔内大于5,则需要有一个条件 表结构: CREATE TABLE `compose`

我试图确定在15分钟内是否有超过5封相同主题和电子邮件发送

我目前有如下疑问:

SELECT
    frommail,
    SUBJECT,
    message,
    count(*) AS count
FROM
    compose
GROUP BY
    frommail,
    SUBJECT,
    message;
但这将返回该表中所有相同记录的计数,但如果计数在任何15分钟间隔内大于5,则需要有一个条件

表结构:

CREATE TABLE `compose` ( `id` int(50) NOT NULL AUTO_INCREMENT, `email` varchar(1000) DEFAULT NULL, `cc` varchar(1000) DEFAULT NULL, `bcc` varchar(1000) DEFAULT NULL, `subject` varchar(1000) DEFAULT NULL, `message` varchar(1000) DEFAULT NULL, `files` blob, `frommail` varchar(1000) DEFAULT NULL, `attached` varchar(30) DEFAULT 'no', `vstatus` varchar(30) DEFAULT 'new', `rstatus` varchar(30) DEFAULT 'no', `mstatus` varchar(39) DEFAULT 'inbox', `port` int(10) NOT null, `date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; 创建表“撰写”( `id`int(50)非空自动增量, `email`varchar(1000)默认为空, `cc`varchar(1000)默认为空, `bcc`varchar(1000)默认为空, `subject`varchar(1000)默认为空, `消息'varchar(1000)默认为空, `文件“blob”, `frommail`varchar(1000)默认为空, `附件“varchar(30)默认值”否, `vstatus`varchar(30)默认值'new', `rstatus`varchar(30)默认值'no', `mstatus`varchar(39)默认为“收件箱”, `端口`int(10)不为空, `日期`时间戳不为空默认当前时间戳, 主键(`id`) )ENGINE=InnoDB默认字符集=1; 样本数据:

id email cc bc subject message files frommail attached vstatus rstatus mstatus port date 24 abc Normal mail Hello rohan no new no inbox 8080 2016-02-22 19:58:20 25 abc Normal mail Hello rohan no new no inbox 8080 2016-02-22 19:58:20 26 abc Normal mail Hello rohan no new no inbox 8080 2016-02-22 20:23:13 27 abc Normal mail Hello rohan no new no inbox 8080 2016-02-22 20:23:13 28 abc Normal mail Hello rohan no new no inbox 8080 2016-02-22 20:23:13 29 abc Normal mail Hello rohan no new no inbox 8080 2016-02-22 20:23:13 30 abc Normal mail Hello rohan no new no inbox 8080 2016-02-22 20:23:13 31 abc Normal mail Hello rohan no new no inbox 7070 2016-02-22 20:34:21 32 abc Normal mail Hello rohan no new no inbox 7075 2016-02-22 20:34:21 33 abc Normal mail Hello rohan no new no inbox 7080 2016-02-22 20:34:21 34 abc Normal mail Hello rohan no new no inbox 8080 2016-02-22 20:34:21 35 abc Normal mail Hello rohan no new no inbox 7070 2016-02-22 20:34:21 id电子邮件cc bc主题邮件文件来自邮件附加的vstatus rstatus mstatus端口日期 24 abc普通邮件你好rohan无新邮箱8080 2016-02-22 19:58:20 25 abc普通邮件你好rohan无新邮箱8080 2016-02-22 19:58:20 26 abc普通邮件你好rohan无新邮箱8080 2016-02-22 20:23:13 27 abc普通邮件你好rohan无新邮箱8080 2016-02-22 20:23:13 28 abc普通邮件你好rohan无新邮箱8080 2016-02-22 20:23:13 29 abc普通邮件你好rohan无新邮箱8080 2016-02-22 20:23:13 30 abc普通邮件你好rohan无新邮箱8080 2016-02-22 20:23:13 31 abc普通邮件你好rohan无新邮箱7070 2016-02-22 20:34:21 32 abc普通邮件你好rohan无新邮箱7075 2016-02-22 20:34:21 33 abc普通邮件你好rohan无新邮箱7080 2016-02-22 20:34:21 34 abc普通邮件你好rohan无新邮箱8080 2016-02-22 20:34:21 35 abc普通邮件你好rohan无新邮箱7070 2016-02-22 20:34:21 我确实有插入时间戳作为日期

如有任何建议,将不胜感激。谢谢。

试试这个伙伴:

Select count(e1.id), 
frommail,  
SUBJECT,
    message
from email e1
left join email e2
on e1.date>date_add(e2.date,interval 15 minute)
having count(*)>5

基本上,它会将表格与自身进行比较,并显示它是否有超过15分钟的记录与其他记录。

你能分享表格结构和一些样本数据吗?基本上,我想找到的是,在任何15分钟内是否发送了5次或更多的电子邮件。@rohan你能标记答案吗?请,我想要更多的分数。很高兴它起作用了。