我在oracle 11g中有一个如下所示的表格
ACT_DTL_ID USER_ID ACTIVITY_TYPE ACTIVITY_TIME
0000000003 DOC000035 LOGIN 03-07-17 12:35:39.000000000 PM
0000000004 DOC000035 LOGOUT 03-07-17 12:41:07.000000000 PM
0000000005 DOC000035 LOGIN 03-07-17 12:41:28.000000000 PM
0000000006 DOC000035 LOGOUT 03-07-17 12:50:35.000000000 PM
我想计算用户的总工作时间。
你能帮帮我吗?
select
sum((x.activity_time - to_date('01.01.2017', 'DD.MM.YYYY') * decode(x.activity_type,'LOGIN',-1,1))
from
your_table x
;
尽管这仅在列表以登录名开头并以注销结尾时才有效。