题目链接:点击打开链接
题目大意:注意有重复数据。
解题思路:解决方案(1) 先去重,则第一次 cnt 肯定都为 1,所以外层再需要统计下;解决方案(2) 不用多说,好理解。
AC 代码
-- 解决方案(1) SELECT follower, COUNT(cnt) num FROM (SELECT f1.follower, COUNT(f1.follower) cnt FROM follow f1, follow f2 WHERE f1.follower = f2.followee GROUP BY f1.follower, f2.followee, f2.follower ORDER BY f1.follower) RS GROUP BY follower -- 解决方案(2) SELECT a.follower, COUNT(DISTINCT b.follower) num FROM follow a JOIN follow b ON a.follower=b.followee GROUP BY a.follower;