SELECT AVG(score) FROM( SELECT DISTINCT rt.rec_user, ua.score FROM recommend_tb rt LEFT JOIN user_action_tb ua ON rt.rec_user=ua.user_id WHERE rt.rec_info_l=ua.hobby_l ) AS avg_score
一开始犯了个错误,主查询写成SELECT AVG(ua.score),后来改为AVG(score)就可以通过。原因是在主查询中没有原来的两个表了,是使用子查询的新表,所以要使用子查询暴露出来的列名。