列表

详情


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 不是二级关注者,但是她不关注任何人,所以我们不把她包括在结果表中。

原站题解

去查看

上次编辑到这里,代码来自缓存 点击恢复默认模板
# Write your MySQL query statement below

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;

上一题