
Lv. 3 / SELECT / 2021 Dev-Matching: 웹 백엔드 개발자(상반기)
문제에서 설명한 그대로 HOST_ID별로 ID를 카운트하고 그 수가 1보다 큰 ID를 추출한 뒤 이를 WHERE에서 조건으로 주어 추출하면 된다.
NAME의 값이 중복되지 않는다는 가정 하에 ID대신 NAME을 카운트해도 되겠지만, 그렇다는 가정이 없고 ID가 기본키라고 명시되어있기 때문에 ID를 사용해주는 것이 좋다.
다행히도 제공되는 데이터가 1NF(제 1 정규화)가 되어있어서 크게 어려움 없이 해결할 수 있는 문제였다.
이번에도 2021 Dev-Matching: 웹 백엔드 개발자(상반기)로 분류되어 딱히 어떤 문제인지 분류를 알 수 없었는데 문제를 풀어보니 SELECT인 것 같아 판단에 의해 표기했다.
/*
헤비 유저가 소유한 장소
SELECT
2021 Dev-Matching: 웹 백엔드 개발자(상반기)
*/
SELECT *
FROM PLACES
WHERE HOST_ID IN (
SELECT HOST_ID
FROM PLACES
GROUP BY HOST_ID
HAVING COUNT(ID) > 1
)
ORDER BY ID;
2021 Dev-Matching: 웹 백엔드 개발자(상반기).. 라는 태그가 붙어있어서 잠시 흠칫했다.
근데 오히려 그렇게 어려운 문제는 아니었다.
이제 프로그래머스에 풀지 않은 sql 문제가 두문제 밖에 남지 않아서 좀더 여유롭게 다른 공부를 하면 좋겠다.