Leetcode 1892. 页面推荐Ⅱ
本文最后更新于370 天前,其中的信息可能已经过时,如有错误请发送邮件到2446865563@qq.com

1.题目基本信息

1.1.题目描述

表: Friendship

+---------------+---------+

| Column Name | Type |

+---------------+---------+

| user1_id | int |

| user2_id | int |

+---------------+---------+

(user1_id,user2_id) 是 Friendship 表的主键(具有唯一值的列的组合)。

该表的每一行表示用户user1_id和user2_id是好友。

表: Likes

+-------------+---------+

| Column Name | Type |

+-------------+---------+

| user_id | int |

| page_id | int |

+-------------+---------+

(user_id,page_id) 是 Likes 表的主键(具有唯一值的列)。

该表的每一行表示user_id喜欢page_id。

您正在为一个社交媒体网站实施一个页面推荐系统。如果页面被user_id的 至少一个朋友喜欢 ,而 不被user_id喜欢 ,你的系统将 推荐 一个页面到user_id。

编写一个解决方案来查找针对每个用户的所有可能的 页面建议 。每个建议应该在结果表中显示为一行,包含以下列:

user_id: 系统向其提出建议的用户的ID。

page_id: 推荐为 user_id 的页面ID。.

friends_likes: user_id 对应 page_id 的好友数。

以 任意顺序 返回结果表。

1.2.题目地址

https://leetcode.cn/problems/page-recommendations-ii/description/

2.解题方法

2.1.解题思路

请参考步骤部分

2.2.解题步骤

第一步,将user2_id和user1_id互换位置union一份到Friendship表中。

第二步,将user2_id的收藏的page_id连接到FriendShip表上,然后过滤出表中(usr1_id,page_id)不在Likes表中的记录,得到子表t2。

第三步,根据(user1_id,page_id)从t1表中分组聚合统计记录数量。

3.解题代码

sql代码

# Write your MySQL query statement below
# 思路:第一步,将user2_id和user1_id互换位置union一份到Friendship表中。第二步,将user2_id的收藏的page_id连接到FriendShip表上,然后过滤出表中(usr1_id,page_id)不在Likes表中的记录,得到子表t2;第三步,根据(user1_id,page_id)从t1表中分组聚合统计记录数量
SELECT 
    t1.user1_id AS user_id, 
    page_id, 
    COUNT(*) AS friends_likes
FROM (
    SELECT user1_id, user2_id FROM Friendship
        UNION ALL
    SELECT user2_id AS user1_id, user1_id AS user2_id FROM Friendship
) AS t1 LEFT JOIN Likes AS l ON t1.user2_id = l.user_id
WHERE NOT EXISTS (
    SELECT * FROM Likes WHERE user_id = user1_id AND page_id = l.page_id
)
GROUP BY t1.user1_id, page_id

4.执行结果

觉得有帮助可以投喂下博主哦~感谢!

作者:geek007

转载请注明文章地址及作者哦~
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇