[Leetcode] Friend Requests II: Who Has the Most Friends
정답
WITH cte AS (
SELECT
requester_id id,
COUNT(*) num
FROM RequestAccepted
GROUP BY requester_id
UNION ALL
SELECT
accepter_id id,
COUNT(*) num
FROM RequestAccepted
GROUP BY accepter_id
)
SELECT
id, SUM(num) num
FROM cte
GROUP BY id
ORDER BY 2 DESC
LIMIT 1;
✅ Point
- request_id에서의 id 별 개수 + accepter_id에서의 id 별 개수
- UNION ALL을 통해 중복 id 값 포함시키기
다른 풀이
- 결국엔 두 column에 있는 특정 id의 개수를 구하면 됨
- 즉, 두 column을 한 column으로 합치고 한 번에 count 수를 구하면 됨
SELECT id, COUNT(id) 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;