本帖最后由 c22513 于 2016-9-23 09:09 编辑
有以下原始数据,表名:test,字段名:num
num
2016-06-11 11:00:002016-06-11 12:00:00
2016-06-11 16:00:00
2016-06-11 18:00:00
2016-06-11 22:00:00
2016-07-12 09:00:00
2016-07-12 12:00:00
2016-07-12 13:40:00
2016-07-13 15:20:00
2016-07-15 16:10:00
按照以下规则筛选:找到与本行数据差超过3个小时的数据
ID num
1 2016-06-11 11:00:00 第一条记录显示
2 2016-06-11 12:00:00 这条记录与第一条相差1个小时,<3个小时,排除
3 2016-06-11 16:00:00 这条记录与第一条相差1个小时,>=3个小时,保留
4 2016-06-11 18:00:00 这条记录与上一个保留的记录,也就是第三条相差2个小时,>3个小时,排除
5 2016-06-11 22:00:00 这条记录与上一个保留的记录,也就是第三条相差4个小时,<3个小时,保留
6 2016-07-12 09:00:00 这条记录与第二个保留的记录,也就是第五条相差11个小时,<=3个小时,保留
7 2016-07-12 12:00:00 这条记录与第三个保留的记录,也就是第六条相差3个小时,<=3个小时,保留
8 2016-07-12 13:40:00 这条记录与第四个保留的记录,也就是第七条相差1个小时40分钟,>3个小时,排除
9 2016-07-13 15:20:00 这条记录与第四个保留的记录,也就是第七条相差3个小时20分钟,<=3个小时,保留
10 2016-07-15 16:10:00 这条记录与第五个保留的记录,也就是第九条相差3个小时以上,>=3个小时,保留
整理出来的结果为
ID num
1 2016-06-11 11:00:00
3 2016-06-11 16:00:00
5 2016-06-11 22:00:00
6 2016-07-12 09:00:00
7 2016-07-12 12:00:00
9 2016-07-13 15:20:00
10 2016-07-15 16:10:00
请问上述MYSQL语句怎么写