with t as ( select distinct user_id from order_tb where date(order_time) = '2022-9-2' ) -- 本题唯一的难点:因为group by后不能用distinct函数,所以为了不重复聚合必须另外开一张表,或者用子查询 select user_id, count(*) as visit_nums from visit_tb join t using (user_id) where date(visit_time) = '2022-9-2' and date(leave_time) = '2022-9-2' group by user_id order by visit_nums desc