with t as (
select 1 as id,'001' as dno,to_date('201609010831','yyyymmddhh24miss') as sj from dual union all
select 2 as id,'001' as dno,to_date('201609010910','yyyymmddhh24miss') as sj from dual union all
select 3 as id,'001' as dno,to_date('201609011031','yyyymmddhh24miss') as sj from dual union all
select 4 as id,'001' as dno,to_date('201609011135','yyyymmddhh24miss') as sj from dual union all
select 5 as id,'001' as dno,to_date('201609011215','yyyymmddhh24miss') as sj from dual union all
select 6 as id,'001' as dno,to_date('201609011331','yyyymmddhh24miss') as sj from dual union all
select 7 as id,'001' as dno,to_date('201609011432','yyyymmddhh24miss') as sj from dual union all
select 8 as id,'002' as dno,to_date('201609011531','yyyymmddhh24miss') as sj from dual union all
select 9 as id,'002' as dno,to_date('201609011210','yyyymmddhh24miss') as sj from dual),
t1 as (select t.*,count(1) over (patition by dno order by sj range interval '1' hour preceding)+count(1) over (patition by dno order by sj desc range interval '1' hour preceding) cc from t)
select id,dno,sj from t1 where cc>2;