条目之间的MYSQL持续时间

时间:2010-12-28 03:00:24

标签: mysql

我需要打印MySQL数据库中的条目,这些条目发生在30分钟的时间范围内,但它们必须具有相同的国家/地区。数据库样本如下所示:

TIMESTAMP        RULE       COUNTRY  
2010-10-25 10:01:00 ICMP PING   SINGAPORE  
2010-10-25 10:25:00 ICMP PING   SINGAPORE  
2010-10-25 10:45:00 ICMP PING   MALAYSIA  
2010-10-25 11:00:00 ICMP PING   MALAYSIA  
2010-10-25 12:20:00 ICMP PING   UNITED STATES  
2010-10-25 14:30:00 ICMP PING   UNITED STATES  

如上所述,来自新加坡和马来西亚的记录发生在30分钟内,请帮我显示一个SQL:

COUNTRY RULE  
SINGAPORE  ICMP PING  
MALAYSIA  ICMP PING

1 个答案:

答案 0 :(得分:2)

select distinct x.country, x.rule
    from yourtable x
    inner join yourtable y
        on x.country=y.country and x.rule=y.rule
        and y.timestamp > x.timestamp and y.timestamp < date_add(x.timestamp, interval 30 minute);

如果应包含30分钟,请将<更改为<=

这假设时间戳是唯一的(或者两个“同时”记录不计算的速率)。如果不是这样,则需要使用唯一的列来区分它们或采用不同的方法。