
SQL 공부중 입니다. ✍✍✍
문제
https://school.programmers.co.kr/learn/courses/30/lessons/77487
풀이
SELECT ID "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 ASC;
PLACES 테이블에서 HOST_ID 의 값이 두 번이상 나타난 값을 기준으로 취합하여 출력하는 문제였습니다. 이전 문제에서 보았던 WHERE 구문에 서브쿼리를 적용하는 방식으로 해결하였습니다.🐘🐘🐘
저의 풀이 이외에 아래와 같이
select p.ID, p.NAME, p.HOST_ID
from PLACES p
join (SELECT ID, NAME, HOST_ID
from PLACES
group by host_id
having count(*) > 1) as h
on p.host_id = h.host_id
order by id
서브쿼리를 FROM 구문 뒤에 선언하여 JOIN하는 방식으로 해결한 풀이 또한 볼 수 있었습니다.🐺🐺🐺
감사합니다.