文章目錄
-
- 1. 題目
- 2. 解題
1. 題目
在 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 |
複制
注意:
保證擁有最多好友數目的隻有 1 個人。
好友申請隻會被接受一次,是以不會有 requester_id 和 accepter_id 值都相同的重複記錄。
解釋:
編号為 ‘3’ 的人是編号為 ‘1’,‘2’ 和 ‘4’ 的好友,是以他總共有 3 個好友,比其他人都多。
進階:
在真實世界裡,可能會有多個人擁有好友數相同且最多,你能找到所有這些人嗎?
來源:力扣(LeetCode)
連結:https://leetcode-cn.com/problems/friend-requests-ii-who-has-the-most-friends
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
2. 解題
# Write your MySQL query statement below
select id, count(*) num
from
(
select requester_id id
from request_accepted
union all # union 會去重,all 不會
select accepter_id
from request_accepted
) t
group by id
order by num desc
limit 1
複制