반응형
문제
중고 거래 게시물을 3건 이상 등록한 사용자의
사용자 ID, 닉네임, 전체주소, 전화번호를 조회하는 SQL문을 작성
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
요구 사항 확인
사용자의 아이디, 별명, 전체 주소, 전체 전화번호만 조회
문자열을 합쳐서 표현하기 위해 CONCAT() 활용하여 전체 주소 조회
CONCAT(시이름(CITY), ' '(띄어쓰기), 주소1(STREET_ADDRESS1), ' '(띄어쓰기), 주소2(STREET_ADDRESS2))
전체 전화번호를 확인하기 위해 동일하게 CONCAT() 활용하여 전체 전화번호 조회
LEFT(데이터, 가져올 데이터의 수) : 데이터의 왼쪽부터 가져올 수만큼 문자 추출
SUBSTR(데이터, 시작할 위치, 시작할 위치부터 가져올 데이터의 수) : 데이터에서 시작 위치에서 문자 추출
RIGHT(데이터, 가져올 데이터의 수) : 데이터의 오른쪽에서부터 가져올 수만큼 문자 추출
이를 활용하여 전화번호에 필요한 데이터를 추출하여 CONCAT()으로 합쳐서 조회
주소1, 2 데이터를 얻기 위해서 중고 거래 게시판 첨부파일 정보(USED_GOODS_USER) 테이블과
중고 거래 게시판 정보(USED_GOODS_BOARD) 테이블 JOIN 진행
-> 기준 컬럼 : USED_GOODS_USER의 USER_ID = USED_GOODS_BOARD의 WRITER_ID
중고 거래 게시물의 수(COUNT())가 3건 이상인 경우만 조회
ORDER BY 내림차순(USER_ID)
select
USER_ID,
NICKNAME,
concat(CITY, ' ', STREET_ADDRESS1, ' ', STREET_ADDRESS2) as 전체주소,
concat(left(TLNO,3), '-', substr(TLNO,4,4), '-', right(TLNO,4)) as 전화번호
from USED_GOODS_USER ugu
join USED_GOODS_BOARD ugb on ugu.USER_ID = ugb.WRITER_ID
group by USER_ID
having count(BOARD_ID) >= 3
order by USER_ID desc;
이와 비슷한 SQL 문제를 풀어보고 싶다면
프로그래머스에서 풀어볼 수 있습니다.
https://school.programmers.co.kr/
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
반응형
'코딩 테스트 > 프로그래머스_MySQL' 카테고리의 다른 글
[프로그래머스] MySQL_없어진 기록 찾기(JOIN) (0) | 2025.03.12 |
---|---|
[프로그래머스] MySQL_Python 개발자 찾기(SELECT) (0) | 2025.03.11 |
[프로그래머스] MySQL_부서별 평균 연봉 조회하기(GROUP BY) (1) | 2025.03.11 |
[프로그래머스] MySQL_특정 옵션이 포함된 자동차 리스트 구하기(String, Date) (0) | 2025.03.11 |
[프로그래머스] MySQL_ROOT 아이템 구하기(IS NULL) (0) | 2025.03.11 |