with t1 as ( select ub.vip,count(*) as visit_nums from visit_tb as vb left join uservip_tb as ub on vb.user_id=ub.user_id group by ub.vip), t2 as ( select ub.vip,count(distinct vb.user_id) as visit_users from visit_tb as vb left join uservip_tb as ub on vb.user_id=ub.user_id group by ub.vip) select t1.vip ,visit_nums,visit_users from t1 left join t2 on t1.vip=t2.vip order by visit_nums desc ,visit_users desc ;