Hive Solution
3.Hive Solution
SELECT
a.user_id,
a.recommended_id
FROM
(select -- t1.*,t2.* from
t1.user_id,
t2.user_id as recommended_id,
count(t2.song_id) as same_soung_cnt
from
(select user_id ,song_id ,day
from leetcode.ex_1917_listens) t1
join
(select user_id ,song_id ,day
from leetcode.ex_1917_listens) t2
ON t1.user_id < t2.user_id and t1.song_id=t2.song_id and t1.day=t2.day
group by t1.user_id,t2.user_id
having same_soung_cnt>=3 ) a
left join
(select user1_id,user2_id from leetcode.ex_1917_friendship ) b
ON a.user_id =b.user1_id
WHERE a.recommended_id <> b.user2_id or b.user2_id is NULL
UNION ALL
SELECT
a.user_id,
a.recommended_id
FROM
(select -- t1.*,t2.* from
t1.user_id,
t2.user_id as recommended_id,
count(t2.song_id) as same_soung_cnt
from
(select user_id ,song_id ,day
from leetcode.ex_1917_listens) t1
join
(select user_id ,song_id ,day
from leetcode.ex_1917_listens) t2
ON t1.user_id > t2.user_id and t1.song_id=t2.song_id and t1.day=t2.day
group by t1.user_id,t2.user_id
having same_soung_cnt>=3) a
left join
(select user1_id,user2_id from leetcode.ex_1917_friendship ) b
ON a.user_id =b.user2_id
WHERE a.recommended_id <> b.user1_id or b.user1_id is NULL
;
PreviousExercise 24:1917.Leetcodify Friends RecommendationsNextExercise 25:1919.Leetcodify Similar Friends
Last updated