https://leetcode.com/problems/friend-requests-ii-who-has-the-most-friends/
Friend Requests II: Who Has the Most Friends - LeetCode
Can you solve this real interview question? Friend Requests II: Who Has the Most Friends - Table: RequestAccepted +----------------+---------+ | Column Name | Type | +----------------+---------+ | requester_id | int | | accepter_id | int | | accept_date |
leetcode.com
select requester_id as id, count(accepter_id) as num
from (
select requester_id, accepter_id
from requestaccepted
union
select accepter_id as requester_id, requester_id as accepter_id
from requestaccepted) a
group by requester_id
order by num desc limit 1
requester_id에 대한 accepter_id 개수, accepter_id에 대한 requester_id 개수 모두 고려해야 하기 때문에 union을 이용했다.
처음에는 requester_id와 accepter_id를 키로 해서 join하는 방식으로 풀었는데,
그렇게 하니 accepter_id에는 있으나 requester_id에는 없는 id가 누락되는 문제가 발생했다.
accepter_id가 누락되지 않도록 requester_id로 변환해서 union했다.
union all을 이용하면 좀더 간결하게 풀 수 있을것 같다.
'코딩테스트 > SQL' 카테고리의 다른 글
[LeetCode][MySQL] Customers Who Bought All Products (1) | 2024.01.05 |
---|---|
[LeetCode][MySQL] Tree Node (0) | 2024.01.03 |
[LeetCode][MySQL] Rearrange Products Table (0) | 2023.12.29 |
[LeetCode][MySQL] Group Sold Products By The Date (0) | 2023.12.20 |
[LeetCode][MySQL] Triangle Judgement (0) | 2023.12.13 |