select avg(score) avg_score from (select rec_user,sum(case when rec_info_l=hobby_l then 1 else 0 end) acc,avg(score) score from recommend_tb t1 join user_action_tb t2 on t1.rec_user=t2.user_id group by rec_user) t where acc!=0;