# Write your MySQL query statement below
614. 二级关注者
表:Follow
+-------------+---------+ | Column Name | Type | +-------------+---------+ | followee | varchar | | follower | varchar | +-------------+---------+ (followee, follower) 是该表的主键(具有唯一值的列的组合)。 该表的每一行表示关注者关注了社交网络上的关注者。 不会有用户关注他们自己。
二级关注者 是指满足以下条件的用户:
编写一个解决方案来报告 二级用户 及其关注者的数量。
返回按 follower
字典序排序 的结果表。
结果格式如下所示。
示例 1:
输入: Follow table: +----------+----------+ | followee | follower | +----------+----------+ | Alice | Bob | | Bob | Cena | | Bob | Donald | | Donald | Edward | +----------+----------+ 输出: +----------+-----+ | follower | num | +----------+-----+ | Bob | 2 | | Donald | 1 | +----------+-----+ 解释: 用户 Bob 有 2 个关注者。Bob 是二级关注者,因为他关注了 Alice,所以我们把他包括在结果表中。 用户 Donald 有 1 个关注者。Donald 是二级关注者,因为他关注了 Bob,所以我们把他包括在结果表中。 用户 Alice 有 1 个关注者。Alice 不是二级关注者,但是她不关注任何人,所以我们不把她包括在结果表中。
原站题解
mysql 解法, 执行用时: 326 ms, 内存消耗: 0 B, 提交时间: 2023-10-16 17:17:27
select followee as follower, count(distinct follower) as num from follow where followee in (select distinct follower from follow) group by followee
mysql 解法, 执行用时: 311 ms, 内存消耗: 0 B, 提交时间: 2023-10-16 17:17:00
SELECT a.follower, COUNT(DISTINCT b.follower) num FROM follow a JOIN follow b ON a.follower=b.followee GROUP BY a.follower;