一、题目描述:614. 二级关注者
SQL架构
在 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不在输出列表中。
注意:
被关注者永远不会被他 / 她自己关注。
将结果按照字典序返回。
二、解题思路
1、select distinct b.follower as follower, a.num from (select c.followee ,count(distinct c.follower) as num from follow as c group by c.followee) as a join follow as b on a.followee=b.follower order by a.followee
2、
select f1.follower, count(distinct f2.follower) as num
from follow f1
inner join
follow f2
on f1.follower = f2.followee
group by f1.follower
order by f1.follower;
本文介绍了一种在Facebook数据架构中使用SQL查询每个关注者的关注者数量的方法。通过两个示例查询,展示了如何从follow表中获取关注者及其关注者数目的详细步骤。
1215

被折叠的 条评论
为什么被折叠?



