728x90
코드 힌트
- 주소 결합
- CITY || ' ' || STREET_ADDRESS1 || ' ' || STREET_ADDRESS2를 사용하여 사용자의 주소를 결합하여 전체 주소를 생성합니다.
- 이는 각 사용자의 주소 정보를 쉽게 확인할 수 있도록 합니다.
- 전화번호 포맷 변환
- REGEXP_REPLACE 함수를 사용하여 전화번호(TLNO)를 특정 형식(\1-\2-\3)으로 변환합니다.
- 이는 전화번호의 가독성을 높이며, 특정 형식으로 데이터를 출력합니다.
- 서브쿼리 사용
- 서브쿼리를 통해 USED_GOODS_BOARD 테이블에서 작성자 ID(WRITER_ID)를 그룹화하고, 게시글 수가 3개 이상인 작성자만 필터링합니다.
- 이를 통해 활동성이 높은 사용자만 선택하여 결과를 정제합니다.
- 조인 조건
- ON U.USER_ID = F.WRITER_ID를 사용하여 USED_GOODS_USER 테이블과 서브쿼리 결과를 조인합니다.
- 이는 조건에 맞는 사용자 정보를 정확하게 가져오기 위해 사용됩니다.
- 정렬
- ORDER BY USER_ID DESC를 통해 사용자 ID를 기준으로 내림차순 정렬하여, 최근에 생성된 사용자 정보를 상단에 표시합니다.
정답은 더보기 클릭
더보기
SELECT USER_ID, NICKNAME, CITY || ' ' || STREET_ADDRESS1 || ' ' || STREET_ADDRESS2 AS 전체주소,
REGEXP_REPLACE(TLNO, '(\d{3})(\d{4})(\d{4})', '\1-\2-\3') AS 전화번호
-- 사용자 ID(USER_ID), 닉네임(NICKNAME), 전체 주소(전체주소),
-- 전화번호를 정해진 형식으로 변환하여 조회합니다.
FROM USED_GOODS_USER U
JOIN (SELECT WRITER_ID
FROM USED_GOODS_BOARD
GROUP BY WRITER_ID
HAVING COUNT(*) >= 3) F
-- 3회 이상 게시글을 작성한 사용자만 선택하기 위해 서브쿼리와 조인합니다.
ON U.USER_ID = F.WRITER_ID
-- 결과를 사용자 ID 기준으로 내림차순 정렬합니다.
ORDER BY USER_ID DESC
728x90
'프로그래머스(Oracle)' 카테고리의 다른 글
[프로그래머스 (Oracle)] 헤비 유저가 소유한 장소 (0) | 2024.10.16 |
---|---|
[프로그래머스 (Oracle)] 저자 별 카테고리 별 매출액 집계하기 (2) | 2024.10.09 |
[프로그래머스 (Oracle)] 년, 월, 성별 별 상품 구매 회원 수 구하기 (1) | 2024.10.05 |
[프로그래머스 (Oracle)] 즐겨찾기가 가장 많은 식당 정보 출력하기 (1) | 2024.10.05 |
[프로그래머스 (Oracle)] 취소되지 않은 진료 예약 조회하기 (2) | 2024.10.05 |