-- 逻辑拆解:先将两个表连接起来,再去判断推荐的内容是不是喜欢的内容 WITH concat_recommend AS( SELECT t1.rec_info_l,t1.rec_user,t2.hobby_l,t2.score FROM recommend_tb t1 INNER JOIN user_action_tb t2 ON t1.rec_user = t2.user_id AND t1.rec_info_l = t2.hobby_l ) -- 再去计算评分,这里特别要注意的是,题目要求计算推荐内容准确的用户的平均评分,并不是推荐内容准确的用户对推荐内容的平均评分 SELECT avg(score) avg_score FROM user_action_tb WHERE user_id IN( SELECT DISTINCT rec_user FROM concat_recommend )