Leetcode_614. 二级关注者

题目难度

中等

题目描述

在 facebook 中,表 follow 会有 2 个字段: followee, follower ,分别表示被关注者和关注者。
请写一个 sql 查询语句,对每一个关注者,查询他的关注者数目。

followee follower
A B
B C
B D
D E

输出

follower num
B 2
D 1

B 和 D 都在在 follower 字段中出现,作为被关注者,B 被 C 和 D 关注,D 被 E 关注。A 不在 follower 字段内,所以A不在输出列表中。

正确答案

SELECT followee AS follower,COUNT(DISTINCT follower) AS num
FROM follow f1
WHERE EXISTS (SELECT 1 FROM follow f2 WHERE f1.followee=f2.follower)
GROUP BY followee

DISTINCT 细节容易忘,数的关注者的时候记得去重,每个人被一个账号关注,只能算作一个人。(可能有关注后取关又关注的情况,都记录在了表中)

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/second-degree-follower

你可能感兴趣的:(Leetcode_614. 二级关注者)