with a as(
select room_id,user_id,date_format(in_time,'%H') as intime,date_format(out_time,'%H') as outtime 
from user_view_tb
having intime in (23,24) or outtime in (23,24)) #要把情况考虑全,有可能是从23点进入直播间的,也有可能是之前一直看到23点-24点的

select a.room_id,room_name,count(distinct user_id) as user_count  #要考虑id为4的用户进了两次1003房间,算得是人数,不是人次
from a
join room_info_tb
on a.room_id=room_info_tb.room_id
group by a.room_id,room_name
order by user_count desc