본문 바로가기
SQL

[LeetCode] Friend Requests II

by 다람이도토리 2024. 1. 31.

https://leetcode.com/problems/friend-requests-ii-who-has-the-most-friends/

 

LeetCode - The World's Leading Online Programming Learning Platform

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

 

처음의 실수는 join으로 잡았는데, 한 쪽 테이블에 정보가 없을 거라는 생각을 하지 못했다.
join으로 풀 수야 있긴 한데, 효율적인 풀이는 아닐 것이다.

Union all로 쉽게 해결 가능하다. with문으로 끌어다쓰자.

WITH FRIENDS_TOTAL AS(
    SELECT 
        REQUESTER_ID AS ID,
        COUNT(*) AS NUM
    FROM RequestAccepted
    GROUP BY ID

    UNION ALL

    SELECT 
        ACCEPTER_ID AS ID,
        COUNT(*) AS NUM
    FROM RequestAccepted
    GROUP BY ID
)

SELECT
    ID,
    SUM(NUM) AS NUM
FROM
    FRIENDS_TOTAL
GROUP BY ID
ORDER BY NUM DESC
LIMIT 1

'SQL' 카테고리의 다른 글

[LeetCode] Count Salary Categories  (0) 2024.02.06
[Leetcode] Confirmation Rate  (0) 2024.01.30
[LeetCode] Department Top Three Salaries  (1) 2024.01.30
[LeetCode] Second Highest Salary  (1) 2024.01.30
[SQL] 윈도우 함수 다시 정리  (0) 2024.01.27