返回介绍

solution / 0600-0699 / 0614.Second Degree Follower / README

发布于 2024-06-17 01:03:36 字数 1781 浏览 0 评论 0 收藏 0

614. 二级关注者

English Version

题目描述

表: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
WITH
  T AS (
    SELECT f1.follower AS follower, f2.follower AS followee
    FROM
      Follow AS f1
      JOIN Follow AS f2 ON f1.follower = f2.followee
  )
SELECT follower, COUNT(DISTINCT followee) AS num
FROM T
GROUP BY 1
ORDER BY 1;

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文