select
    artical_id
    , max(uv) as max_uv
from (
    select
    artical_id
    , time
    , sum(df) over(order by time asc, df desc) as uv
    from (
        select
        artical_id
        , in_time as time
        , 1 as df
        from tb_user_log
        where artical_id != 0

        union all

        select
            artical_id
            , out_time as time 
            , -1 as df
        from tb_user_log
        where  artical_id != 0
    ) a
) b
group by 1
order by max_uv desc