Leetcode力扣 MySQL数据库 602 好友申请II:谁有最多的好友

602 好友申请II:谁有最多的好友


SQL架构

Create table If Not Exists request_accepted_602 ( requester_id INT NOT NULL, accepter_id INT NULL, accept_date DATE NULL);
Truncate table request_accepted_602;
insert into request_accepted_602 (requester_id, accepter_id, accept_date) values ('1', '2', '2016/06/03');
insert into request_accepted_602 (requester_id, accepter_id, accept_date) values ('1', '3', '2016/06/08');
insert into request_accepted_602 (requester_id, accepter_id, accept_date) values ('2', '3', '2016/06/08');
insert into request_accepted_602 (requester_id, accepter_id, accept_date) values ('3', '4', '2016/06/09');


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

表 request_accepted 存储了所有好友申请通过的数据记录,其中, requester_id 和 accepter_id 都是用户的编号。


| requester_id | accepter_id | accept_date|
|--------------|-------------|------------|
| 1            | 2           | 2016_06-03 |
| 1            | 3           | 2016-06-08 |
| 2            | 3           | 2016-06-08 |
| 3            | 4           | 2016-06-09 |
写一个查询语句,求出谁拥有最多的好友和他拥有的好友数目。对于上面的样例数据,结果为:

| id | num |
|----|-----|
| 3  | 3   |


解题


-- 可以将 requester_id 和 accepter_id 联合起来,然后统计每个人出现的次数。

select requester_id as ids from request_accepted_602
union all
select accepter_id from request_accepted_602;

-- 最终SQL

select ids as id, cnt as num
from
(
select ids, count(*) as cnt
   from
   (
        select requester_id as ids from request_accepted_602
        union all
        select accepter_id from request_accepted_602
    ) as tbl1
   group by ids
   ) as tbl2
order by cnt desc
limit 1;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ziko-1101

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值