Leetcode_602. 好友申请 II :谁有最多的好友

题目难度

中等

题目描述

在 Facebook 或者 Twitter 这样的社交应用中,人们经常会发好友申请也会收到其他人的好友申请。
表 request_accepted 存储了所有好友申请通过的数据记录,其中, requester_id 和 accepter_id 都是用户的编号。
在这里插入图片描述
写一个查询语句,求出谁拥有最多的好友和他拥有的好友数目。对于上面的样例数据,结果为
在这里插入图片描述

正确答案
SELECT id,COUNT(id) AS num    
FROM 
	(SELECT accepter_id AS id FROM request_accepted        
	UNION ALL        
	SELECT requester_id FROM request_accepted) t1    
GROUP BY id
ORDER BY num DESC
LIMIT 1;

union all 将不去重拼接,union all 重复行自动去重。

进阶

找到所有好友量最多的人

SELECT *
FROM    
	(
	SELECT id, COUNT(id) AS num    
	FROM (
		SELECT accepter_id AS id FROM request_accepted            
		UNION ALL            
		SELECT requester_id FROM request_accepted
		) t1    
	GROUP BY id    
	ORDER BY num DESC
	) t2
HAVING num=MAX(num)

多加了一层子循环

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值