SELECT x.user_id FROM(select distinct user_id from(select user_id,call_day,call_time , dense_rank()over(partitionby call_day order by call_time ) as rn from(select caller_id as user_id,to_date(call_time) as call_day, call_time from leetcode.ex_1972_callsunion allselect recipient_id as user_id,to_date(call_time) as call_day, call_time from leetcode.ex_1972_calls ) a ) t1 where rn =1 ) x INNER JOIN(select distinct user_id from(select user_id,call_day,call_time , dense_rank()over(partitionby call_day order by call_time desc) as rn_descfrom(select caller_id as user_id,to_date(call_time) as call_day, call_time from leetcode.ex_1972_callsunion allselect recipient_id as user_id,to_date(call_time) as call_day, call_time from leetcode.ex_1972_calls ) a ) t2 where rn_desc =1 ) y ON x.user_id= y.user_id;