No 'create table', no insert statements, no data...no nothing.
Tell you what...we'll do the work for you....
SQL> create table emp_activity
2 ( empid int,
3 status varchar2(10),
4 status_date date
5 );
Table created.
SQL>
SQL> insert into emp_activity values (1, 'Login', date '2017-01-01' );
1 row created.
SQL> insert into emp_activity values (1, 'Logout', date '2017-01-04' );
1 row created.
SQL> insert into emp_activity values (1, 'Login', date '2017-02-01' );
1 row created.
SQL> insert into emp_activity values (1, 'Logout', date '2017-04-04' );
1 row created.
SQL> insert into emp_activity values (1, 'Login', date '2017-05-01' );
1 row created.
SQL> insert into emp_activity values (1, 'Logout', date '2017-08-06' );
1 row created.
SQL> insert into emp_activity values (1, 'Login', date '2017-09-01' );
1 row created.
SQL> insert into emp_activity values (1, 'Logout', date '2017-11-07' );
1 row created.
SQL>
SQL>
SQL> insert into emp_activity values (2, 'Login', date '2017-01-01' );
1 row created.
SQL> insert into emp_activity values (2, 'Logout', date '2017-01-04' );
1 row created.
SQL> insert into emp_activity values (2, 'Login', date '2017-01-14' );
1 row created.
SQL> insert into emp_activity values (2, 'Logout', date '2017-01-25' );
1 row created.
SQL> insert into emp_activity values (2, 'Login', date '2017-03-01' );
1 row created.
SQL> insert into emp_activity values (2, 'Logout', date '2017-03-06' );
1 row created.
SQL> insert into emp_activity values (2, 'Login', date '2017-03-25' );
1 row created.
SQL> insert into emp_activity values (2, 'Logout', date '2017-03-31' );
1 row created.
SQL>
SQL> select empid, sum(case when status = 'Logout' then status_date - prev_status_date end ) duration
2 from (
3 select empid, status, status_date,
4 lag(status_date) over ( partition by empid order by status_date) prev_status_date
5 from emp_activity
6 )
7 group by empid;
EMPID DURATION
---------- ----------
1 229
2 25