조건에 맞는 사용자 정보 조회하기

Yunjisang·2024년 10월 3일

SQL 뽀개기

목록 보기
3/3

조건에 맞는 사용자 정보 조회하기

문제 링크
난이도 : Lv. 3
카테고리 : String, Date

중고 거래 게시물을 3건 이상 등록한 사용자의 사용자 ID, 닉네임, 전체주소, 전화번호를 조회하는 SQL문을 작성해야 한다.
이때, 전체 주소는 시, 도로명 주소, 상세 주소가 함께 출력하고, 전화번호의 경우 xxx-xxxx-xxxx 같은 형태로 하이픈 문자열(-)을 삽입하여 출력해야 하며 회원 ID를 기준으로 내림차순 정렬한다.

SELECT 
U.USER_ID, U.NICKNAME, U.CITY || ' ' || U.STREET_ADDRESS1 || ' ' || U.STREET_ADDRESS2 as 전체주소,
REGEXP_REPLACE(U.TLNO, '(.{3})(.+)(.{4})', '\1-\2-\3') 전화번호 
FROM USED_GOODS_USER U,
(SELECT B.WRITER_ID FROM USED_GOODS_BOARD B GROUP BY B.WRITER_ID HAVING COUNT(B.WRITER_ID) >= 3) NEW_B
WHERE U.USER_ID = NEW_B.WRITER_ID
ORDER BY U.USER_ID DESC

REGEXP_REPLACE 함수를 사용해 전화번호를 정규화하였다.
Group ByHaving 절을 사용해 USED_GOODS_BOARD 에서 WRITER_ID를 그룹화하여 COUNT한 컬럼의 값이 3 이상인 테이블을 SUBQUERY 로 조회하였고, 만들어진 테이블을 USED_GOODS_USER 테이블과 JOIN하고 USER_ID 기준으로 내림차순 정렬하였다.

profile
BalhyoHongsam

0개의 댓글