我有一张表time
表结构和数据如下
name program start stop length
li football 15:23:09 15:23:50 41
you football 15:23:09 15:23:50 41
li football 15:23:52 15:24:50 58
li football 15:24:52 15:25:09 17现在我要做的就是把name、program相同的记录,如果它们的开始时间与结束时间
相差很小(小于5秒),我们就把二条记录进行合并成一条记录。例如
li football 15:23:52 15:24:50 58
li football 15:24:52 15:25:09 17
应该是li football 15:23:52 15:25:09 77上面的表最后变成
name program start stop length
li football 15:23:09 15:25:09 120
you football 15:23:09 15:23:50 41数据量比较的大 希望大家给出一些高效的语句
补充问题:
如果上面加上一个唯一的字段id,把name、program相同的记录,如果它们的开始时间与结束时间
相差很小(小于5秒),进行合并成该怎么做?
表结构和数据如下
name program start stop length
li football 15:23:09 15:23:50 41
you football 15:23:09 15:23:50 41
li football 15:23:52 15:24:50 58
li football 15:24:52 15:25:09 17现在我要做的就是把name、program相同的记录,如果它们的开始时间与结束时间
相差很小(小于5秒),我们就把二条记录进行合并成一条记录。例如
li football 15:23:52 15:24:50 58
li football 15:24:52 15:25:09 17
应该是li football 15:23:52 15:25:09 77上面的表最后变成
name program start stop length
li football 15:23:09 15:25:09 120
you football 15:23:09 15:23:50 41数据量比较的大 希望大家给出一些高效的语句
补充问题:
如果上面加上一个唯一的字段id,把name、program相同的记录,如果它们的开始时间与结束时间
相差很小(小于5秒),进行合并成该怎么做?
select name,program,min(start),max(stop),TIMEDIFF(max(stop),min(start))
from tt group by name,program
比如第一条15:23:09 15:23:50
15:23:12 15:23:54
15:23:16 15:23:58
..这样会产生递归你如何处理? 建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
参考一下这个贴子的提问方式http://topic.csdn.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html
1. 你的 create table xxx .. 语句
2. 你的 insert into xxx ... 语句
3. 结果是什么样,(并给以简单的算法描述)
4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)
这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。
你要求的结果 是 相差5秒以内?应该是li football 15:23:52 15:25:09 77li football 15:23:09 15:23:50 41
li football 15:24:52 15:25:09 17
li football 15:24:52 15:25:09 17
应该是li football 15:23:52 15:25:09 77这是相差5秒?是1分钟,77怎么得到的