SQL:获得跟随相同用户的主要用户

时间:2018-09-17 11:03:25

标签: mysql sql

我有一个像这样的表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是user_id,followee是他们关注的用户。

如何与用户1找到拥有最常追随者的用户?

结果需要按共同的追随者人数排序。

例如,对于当前表,用户1的结果为:

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

您可以看到,4没有出现在结果中,因为它与用户1没有共同的追随者

我希望我能正确解释问题。

谢谢。

1 个答案:

答案 0 :(得分:0)

这是一个自连接和聚合:

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。我想保留该行作为验证检查。