반응형
https://school.programmers.co.kr/learn/courses/30/lessons/77487
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
저는 두가지 방법으로 문제를 해결하였습니다.
JOIN 사용
SELECT ID, NAME, HOST_ID
FROM PLACES AS O
JOIN
(SELECT HOST_ID AS H_USER , COUNT(HOST_ID) AS CNT
FROM PLACES
GROUP BY HOST_ID
HAVING CNT >= 2) AS U
ON O.HOST_ID = U.H_USER
ORDER BY ID
먼저 JOIN을 사용한 방법입니다.
기본 PLACES 테이블 O와 HOST_ID를 기준으로 그룹화하고 HOST_ID의 수가 2개 보다 많거나 같은 HOST_ID만 추출한 테이블 U를 JOIN하여 문제를 해결하였습니다.
WHERE문 서브쿼리 사용
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
다음은 WHERE문에서 서브쿼리를 사용한 방법입니다.
WHERE문에서 위의 테이블과 마찬가지로 HOST_ID를 기준으로 HOST_ID의 수가 2개보다 많은 HOST_ID를 가진 테이블을 서브쿼리하고
IN을 통하여 PLACES 테이블의 HOST_ID가 서브쿼리한 테이블에 있는 HOST_ID만 추출합니다.
반응형
'코딩테스트' 카테고리의 다른 글
[코딩테스트] 프로그래머스 식품분류별 가장 비싼 식품의 정보 조회하기 MySQL (1) | 2022.12.06 |
---|---|
[코딩테스트] 프로그래머스 5월 식품들의 총매출 조회하기 (0) | 2022.12.06 |
[코딩테스트] 프로그래머스 즐겨찾기가 가장 많은 식당 정보 출력하기 MySQL (0) | 2022.12.05 |
[코딩테스트] 프로그래머스 조건별로 분류하여 주문상태 출력하기 MySQL (0) | 2022.12.04 |
[코딩테스트] 프로그래머스 없어진 기록 찾기 MySQL (0) | 2022.12.04 |