日期:2014-05-20  浏览次数:20866 次

请问一个判断时间重复的算法
问题是这样的:有N条记录,每条记录里面包含一个开始时间段和一个结束时间段,
例:
序号 开始时间 结束时间 时间差(小时) 时间差(分钟) 最后结果
1 8:00 10:00 2 0 4小时10分/4小时
2 8:10 9:10 1 00 4小时10分/4小时
3 09:00 10:`10 1 10 4小时10分/4小时
4 09:00 11:50 2 50 2小时50分 
5 12:00 13:00 1 0 1小时 
6 14:00 16:00 2 0 2小时
7 15:00 16:00 1 0 1小时/4小时  


第1,2,3,4是重复的时间.
现在的要求是要找出重复的时间,然后将一个时间差最大的值上面的例子是第4条,然后把结果填上去直接是时间差的结果,
其他时间全部直接累加然后除以4小时作为结果. 其他如果不重复的直接是时间差作为结果就可以了,如第5条.
第6和7是重复的时间.
请问一下怎样找出这些重复时间呢,有没有比较好的算法?谢谢


------解决方案--------------------
重复时间是怎么定义的? 你的描述和例子好象不一致.
------解决方案--------------------
6 14:00 16:00 2 0 2小时 
7 15:00 16:00 1 0 1小时/4小时

这两条才重复吧
------解决方案--------------------
select count(1), 结束时间
from table
group by 结束时间
having count(1)>1