select
round(avg(t.score), 3) as avg_score
from(
select *,
row_number() over(partition by r.rec_user order by u.score) as ranking
from recommend_tb as r
join user_action_tb as u on r.rec_user = u.user_id
where r.rec_info_l = u.hobby_l
) as t
where t.ranking = 1
#采用窗口函数去除重复推荐,也看到使用flag计数,但我感觉窗口函数好一点,不知道哪个运行效果好,底层逻辑没学的坏处,好处是快



京公网安备 11010502036488号