문제
풀이 과정
1) 문제 이해 및 접근
해당 테이블에서 유저별로 몇개의 데이터를 가지고 있는지에 따라 출력이 필요하므로 그룹화를 이용하여 접근했습니다.
그룹화를 했을때, 여러 데이터를 모두 출력할 수 없기에 서브쿼리를 이용했습니다.
2) 풀이 코드
사용 언어 - Oracle
SELECT * -- 모든 열 출력
FROM PLACES -- 테이블
WHERE HOST_ID IN (
SELECT HOST_ID
FROM PLACES
GROUP BY HOST_ID
HAVING COUNT(HOST_ID) >= 2
) -- HOST_ID가 서브쿼리 결과에 속해 있는것만 필터링
-- 서브쿼리 => HOST_ID 그룹화를 하여 해당 그룹이 2개 이상의 데이터가 있는것만 필터링
ORDER BY ID; -- ID 순서대로 정렬
결과 및 학습한 내용
1) 어려웠던 내용
서브쿼리가 복수개의 쿼리가 반환되어 WHERE 절에서 IN 을 사용해야하는것을 늦게 인지했습니다.
문제 링크
- https://programmers.co.kr/learn/courses/30/lessons/77487?language=oracle
※ 오류 및 오타, 다른 의견이 있는 경우 댓글을 남겨주시면 감사하겠습니다
'알고리즘 문제풀이 > SQL' 카테고리의 다른 글
[HackerRank] Weather Observation Station 13 (0) | 2021.12.21 |
---|---|
[프로그래머스] 오랜 기간 보호한 동물(2) (0) | 2021.12.20 |
[프로그래머스] 없어진 기록 찾기 (0) | 2021.12.19 |
[프로그래머스] 있었는데요 없었습니다 (0) | 2021.12.17 |
[HackerRank] Type of Triangle (0) | 2021.12.16 |
댓글