일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 국비지원
- 데이터분석가
- 내일배움카드
- 국비지원교육
- 데이터분석취업
- 데이터분석부트캠프
- Python
- 코테문제풀이
- 부트캠프
- 코딩연습
- 프로그래머스
- 패스트캠퍼스부트캠프
- WSL
- qgis
- 코딩테스트
- 코딩테스트문제풀이
- 패스트캠퍼스기자단
- 패스트캠퍼스
- Programmers
- bigquery
- 아나콘다
- 국비지원취업
- shp
- 데이터분석
- K디지털기초역량훈련
- sql강의
- mysql
- 패스트캠퍼스데이터분석부트캠프
- SQL
- 학습일지
- Today
- Total
데이터 리터러시를 위한 발자취
[프로그래머스] 코딩테스트 연습 - 헤비 유저가 소유한 장소 본문
헤비 유저가 소유한 장소 (2021 Dev-Matching: 웹 백엔드 개발자(상반기) )
문제 설명
PLACES 테이블은 공간 임대 서비스에 등록된 공간의 정보를 담은 테이블입니다. PLACES 테이블의 구조는 다음과 같으며 ID, NAME, HOST_ID는 각각 공간의 아이디, 이름, 공간을 소유한 유저의 아이디를 나타냅니다. ID는 기본키입니다.
문제
이 서비스에서는 공간을 둘 이상 등록한 사람을 "헤비 유저"라고 부릅니다. 헤비 유저가 등록한 공간의 정보를 아이디 순으로 조회하는 SQL문을 작성해주세요.
예시
문제풀이
접근방식은 아래와 같이 정리하여 진행하였습니다.
1. 공간을 둘 이상 등록한 사람을 "헤비 유저"라고 정의함
- 결과예시를 살펴보면, 둘 이상인 헤비유저들의 리스트를 출력해야 함. 서브쿼리를 이용하여 코드 작성 필요
- WHERE 절 서브쿼리 사용하였으며, GROUP BY를 통해 HOST_ID를 그룹화해 준 후, COUNT(*)가 2 이상인 값을 출력함
▷ HAVING 절 기반 COUNT(*) >= 2 이상 값을 카운트하도록 작성
2. 아이디 순으로 조회하는 SQL문을 작성
▷ ORDER BY ID로 정렬 필요
제출 코드
- 문제풀이 기반 제출한 정답 코드
# 정답코드
SELECT *
FROM PLACES
WHERE HOST_ID IN (SELECT HOST_ID FROM PLACES
GROUP BY HOST_ID
HAVING COUNT(*) >= 2) # 헤비유저 조건에 맞는 서브쿼리문 작성
ORDER BY ID
주의할 점
- 서브쿼리를 사용하지 않고, 아래 코드처럼 GROUP BY, HAVING절로만 헤비유저를 구하려고 한다면 오답 발생
# 오답코드
SELECT *
FROM PLACES
GROUP BY HOST_ID
HAVING COUNT(*) >= 2
ORDER BY ID
▶오답 이유
- 문제가 요구하는 바는 HOST_ID가 2건 이상인 헤비유저들의 전체 리스트가 출력되어야 함
- 오답코드처럼 작성 시 HOST_ID가 그룹화되어 출력되는 row 수가 감소함
프로그래머스에서 제공 중인 SQL 코딩테스트 중 Lv.3에 해당하는 문제입니다.
서브쿼리 사용하는 것 말고는 생각보단 쉬워서 오..? 하면서 풀어서 1회 차에 정답 처리 되었는데요.
주의할 점은 결과 예시를 제대로 이해하지 않고 푼다면 오답이 나올 가능성이 높은 문제인 것 같아서 추가로 정리해 보았습니다.
코딩테스트 진행하면서 헷갈릴 수 있는 문제들은 이렇게 틈틈이 정리해야겠습니다-!
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
'데이터 분석 > SQL' 카테고리의 다른 글
[프로그래머스] 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기 (2) | 2023.10.04 |
---|---|
[프로그래머스] 코딩테스트 연습 - 우유와 요거트가 담긴 장바구니 (0) | 2023.09.22 |
[패스트캠퍼스] SQL 강의 학습후기 5주차 (0) | 2023.06.24 |
[패스트캠퍼스] SQL 강의 학습후기 4주차 (2) | 2023.06.17 |
[패스트캠퍼스] SQL 강의 학습후기 3주차 (2) | 2023.06.10 |