코딩테스트/MySQL
[Programmers] Level 3. 헤비 유저가 소유한 장소 (MySQL)
swwho
2022. 10. 5. 00:41
728x90
반응형
🔗 Problem Link
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
❔Thinking
- HOST_ID가 두 번 이상 등장한 유저의 정보를 출력한다.
💻Solution
1. IN을 활용한 풀이
SELECT ID, NAME, HOST_ID
FROM PLACES
WHERE HOST_ID in (SELECT HOST_ID FROM PLACES GROUP BY HOST_ID HAVING COUNT(HOST_ID)>=2)
ORDER BY ID
2. EXISTS를 활용한 풀이
SELECT * FROM PLACES P1
WHERE EXISTS (
SELECT * FROM PLACES P2
WHERE P1.HOST_ID = P2.HOST_ID
GROUP BY HOST_ID
HAVING COUNT(ID) >= 2
)
ORDER BY ID
🗝️keypoint
- HOST_ID가 등장한 횟수를 구하고, 여기서 두 번 이상 등장한 HOST_ID를 골라내야 한다.
- EXISTS를 활용하면 해당 값의 유무만 판단할 뿐, 실제 데이터를 확인하지 않기 때문에 보다 효율적이다.