最近碰到了两次这种情况,类似于使用打卡时间求一段时间内的工作时间之和,给出的表数据大致是这样的
ID:车间ID
gid:设备id
ACTIVITY:类型 ,有两种:in 开启, out 关闭
时间:启动或者关闭的时间点
现在的要求是输入一个开始时间 和一个结束时间 求每台设备(同一车间的同一设备)的在此范围内的工作时间。
异常数据处理:
1.重复数据需要去重
2.同一台设备连续的in 需要取最后一个
3.连续的out需要取第一个
4.如果一个时间段的开始时间小于输入的开始时间,则按照输入开始时间计算
5.如果一个时间段的结束时间大于输入的结束时间,则按照输入结束时间计算
上面的表输入
最终得到的结果是