코딩테스트/SQL 코딩테스트
<프로그래머스> 헤비 유저가 소유한 장소
배또가또
2023. 12. 28. 16:41
출처 : https://school.programmers.co.kr/learn/courses/30/lessons/77487
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
- 문제 요구사항
- 서비스에서 공간을 둘 이상 등록한 사람을 "헤비 유저"라고 할 때
- 헤비 유저가 등록한 공간의 정보를 아이디 순으로 조회
공간을 등록한 사람의 ID는 HOST_ID이다.
헤비 유저 조건(공간을 둘 이상 등록한 유저)을 조회하기 위해서 WHERE절에 서브쿼리로 조건을 입력해주기로 한다.
PLACES 테이블에서 HOST_ID를 기준으로 GROUP BY 했을 때
COUNT(*)의 수가 2보다 크거나 같은 HOST_ID를 HAVING 절로 조회하면 헤비유저를 조회할 수 있다.
WHERE절에서 작성된서브쿼리에서 다중행이 조회 되기 때문에 다중행 비교 연산자인 IN을 사용한다.
이렇게 조회된 HOST_ID 조건을 만족하는 유저에 대해서 테이블 전체칼럼을
ID를 기준으로 오름차순 정렬하여 조회한다.
1) Oracle
SELECT *
FROM PLACES
WHERE HOST_ID IN (SELECT HOST_ID
FROM PLACES
GROUP BY HOST_ID
HAVING COUNT(*)>=2)
ORDER BY ID
2) MySQL
SELECT *
FROM PLACES
WHERE HOST_ID IN (SELECT HOST_ID
FROM PLACES
GROUP BY HOST_ID
HAVING COUNT(*)>=2)
ORDER BY ID