Contents
내가 작성한 쿼리
가장 많은 친구와 가장 많은 친구 수를 가진 사람들을 찾기 위한 해결책을 작성하세요. 테스트 케이스는 한 사람만이 가장 많은 친구를 가질 수 있도록 생성됩니다.
내가 작성한 쿼리
Oracle
SELECT *
FROM (
SELECT
id,
COUNT(*) AS num
FROM (
SELECT requester_id AS id FROM RequestAccepted
UNION ALL
SELECT accepter_id AS id FROM RequestAccepted
)
GROUP BY id
ORDER BY num DESC
)
WHERE ROWNUM = 1;
MySQL
SELECT
id,
COUNT(*) AS num
FROM (
-- 친구 관계는 양방향이므로, 둘 중 어디든 나오면 친구 카운트 증가
SELECT requester_id AS id FROM RequestAccepted
UNION ALL
SELECT accepter_id AS id FROM RequestAccepted
) AS all_ids
GROUP BY id -- 사람별로 친구 수 집계
ORDER BY num DESC -- 친구 수가 많은 순으로 정렬
LIMIT 1; -- 가장 친구가 많은 사람 한 명만 출력
차이점
- 상위 결과값 출력 개수 제한하는 방식의 차이
Share article