我有下表:
Emp_Id In_Time Out_time
10 '2014-07-16 08:25:00' '2014-07-16 10:25:00'
10 '2014-07-16 10:35:00' '2014-07-16 14:42:00'
10 '2014-07-16 15:00:00' '2014-07-16 16:03:00'
10 '2014-07-16 16:15:00' '2014-07-16 16:24:00'
在该表中,办公室(进出)、午休(进出)、茶歇等记录在同一列中。我的目标是找到(In_time)的最小值和(Out_time)的最大值来记录在办公室的总时间。最终输出应该是这样的:
Emp_Id In_Time Out_Time
10 '2014-07-16 08:25:00' '2014-07-16 16:24:00'
我正在处理这段代码:
select Emp_Id, min(In_Time) over(partition by Emp_Id) as start,
max(Out_Time) over(partition by Emp_Id) as stop,
from tablename
where day(In_Time) = day (Out_time)
group by (Emp_Id, In_Time, Out_time)
我正在检查日期是否相同,以确保输入日期中的输入错误包含在最终结果中。在这样做时,我得到两个具有相同值的四行。我意识到将所有内容分组是导致这种情况的原因,但 Netezza 不允许分组中的单个属性。有人可以帮我找到正确的解决方案。