with t1 as
      (select artical_id,in_time dt,1 diff
       from tb_user_log 
       where artical_id!=0
       union all
       select artical_id,out_time dt,-1 diff
       from tb_user_log
       where artical_id!=0)
select t2.artical_id,max(t2.cn) mx
from 
    (select artical_id,
           sum(diff) over(partition by artical_id order by dt,diff desc) cn
    from t1
    ) t2
group by t2.artical_id
order by mx desc;