前言
练习sql语句,所有题目来自于力扣(https://leetcode.cn/problemset/database/)的免费数据库练习题。
今日题目:
602.好友申请II:谁有最多的好友
表:RequestAccepted
| 列名 | 类型 |
|---|---|
| requester_id | int |
| accepter_id | int |
| accept_date | date |
(requester_id, accepter_id) 是这张表的主键(具有唯一值的列的组合)。
这张表包含发送好友请求的人的 ID ,接收好友请求的人的 ID ,以及好友请求通过的日期。
编写解决方案,找出拥有最多的好友的人和他拥有的好友数目。生成的测试用例保证拥有最多好友数目的只有 1 个人。
进阶:在真实世界里,可能会有多个人拥有好友数相同且最多,你能找到所有这些人吗?
我那不值一提的想法:
- 首先梳理表内容,题干一共给了一张请求表,记录了发送请求id,接受者id,接受日期
- 其次分析需求,需要找到拥有最多好友的人和他拥有的好友数量
- 首先查好友数量,通过这个表我们可以观察到,好友的数量=requester_id的数量+accepter_id的数量,这里我们可以通过别查询requester_id的数量和accpter_id的数量
- 然后再使用union all 连接所有的结果,就能得到用户接受好友的数量,以及用户被接受好友的数量
- 最后再将结果建立成临时表,从临时表

本文介绍如何使用SQL查询LeetCode数据库中的好友申请表,找出拥有最多好友的人及其数量。作者首先计算每个用户发送和接受请求的数量,然后合并并排序,对于可能的多个最多好友,通过嵌套查询找到所有这些用户及其好友数。
最低0.47元/天 解锁文章
548

被折叠的 条评论
为什么被折叠?



