0
点赞
收藏
分享

微信扫一扫

leetcode中等之602.好友申请II:谁有最多的好友

infgrad 2022-04-29 阅读 62
leetcode

在 Facebook 或者 Twitter 这样的社交应用中,人们经常会发好友申请也会收到其他人的好友申请。

RequestAccepted 表:

Column NameType
requester_idint
accepter_idint
accept_datedate

(requester_id, accepter_id) 是这张表的主键。
这张表包含发送好友请求的人的 ID ,接收好友请求的人的 ID ,以及好友请求通过的日期。

问题

写一个查询语句,找出拥有最多的好友的人和他拥有的好友数目。

生成的测试用例保证拥有最多好友数目的只有 1 个人。

示例:

输入:

RequestAccepted 表:

requester_idaccepter_idaccept_date
122016/06/03
132016/06/08
232016/06/08
342016/06/09

输出:

idnum
33

解释:
编号为 3 的人是编号为 1 ,2 和 4 的人的好友,所以他总共有 3 个好友,比其他人都多。

解答

法一:UNION ALL

select id,sum(num) num
from ((
    select requester_id id,count(1) num
    from requestaccepted
    group by requester_id
    )
    union all
    (select accepter_id id,count(1) num
    from requestaccepted
    group by accepter_id)) t
group by id
order by num DESC
limit 1

法二:直接拼接

select id,count(1) num
from ((
    select requester_id id
    from requestaccepted
    )
    union all
    (select accepter_id id
    from requestaccepted)) t
group by id
order by num DESC
limit 1
举报

相关推荐

0 条评论