select artical_id,max(uv) as max_uv
from (
select artical_id,dt,sum(diff)over(partition by artical_id order by dt,diff desc) as uv
from (
select artical_id,in_time as dt,1 as diff
from tb_user_log
where artical_id <>0
union all
select artical_id,out_time as dt,-1 as diff
from tb_user_log
where artical_id <>0 ) t1
) t2
group by artical_id
order by max_uv desc
看了其他大神的答案才写出来的,请教一下,为啥t2里不用加group by artical_id



京公网安备 11010502036488号