sql:获取跟随相同用户的顶级用户

0sgqnhkj  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(299)

我有table followers 看起来是这样的:

id    |follower_id|followee_id|
1     |     1     |     2     |
2     |     1     |     3     |
2     |     1     |     4     |
3     |     2     |     3     |
4     |     2     |     4     |
5     |     3     |     2     |
6     |     4     |     6     |

哪里 follower 是用户id和 followee 是他们跟踪的用户。
我怎样才能找到那些跟user有最常见的followe的用户呢 1 ?
结果需要按普通followes的数量排序。
例如,对于当前表,用户的结果 1 可能是:

follower_id|common_followees|
2          |        2       |
3          |        1       |

如你所见 4 不会出现在结果中,因为它与用户没有共同的followees 1 我希望我正确地解释了这个问题。
谢谢您。

41zrol4v

41zrol4v1#

这是一个自联接和聚合:

select f.follower_id, count(*) as num_common_followees
from followers f join
     followers f1
     on f.followees = f1.followees and f1.follower_id = 1
group by f.follower_id;

您可以添加 where f.follower_id <> 1 . 我想把那一行留下来作为验证。

相关问题