정보
분류 : GROUP BY
문제
풀이
조 건
중고 거래 게시물을 3건 이상 등록한 사용자
조회컬럼
사용자 ID, 닉네임, 전체주소, 전화번호
정렬조건
회원 ID를 기준으로 내림차순
포맷설정
전체 주소는 시, 도로명 주소, 상세 주소가 함께 출력
전화번호의 경우 xxx-xxxx-xxxx 같은 형태로 하이픈 문자열(-)을 삽입
SELECT USER_ID
, NICKNAME
, ( CITY
|| ' ' || STREET_ADDRESS1
|| ' ' || STREET_ADDRESS2
) AS "전체주소"
, ( SUBSTR(TLNO, 1, 3)
|| '-' || SUBSTR(TLNO, 4, 4)
|| '-' || SUBSTR(TLNO, 8)
) AS "전화번호"
FROM USED_GOODS_USER UGU
JOIN (
SELECT WRITER_ID
, COUNT(*) AS "중고거래게시물건수"
FROM USED_GOODS_BOARD
GROUP BY WRITER_ID
HAVING COUNT(*) >= 3
) UGB
ON UGU.USER_ID = UGB.WRITER_ID
ORDER BY USER_ID DESC
풀이 내용
서브쿼리를 통해 작성자ID별 중고거래 게시물 건수를 뽑아낸 후 USED_GOODS_USER 테이블과 JOIN을 진행해주었다. INNER JOIN이니 각 행에 NULL이 존재하면 자동으로 행 제거가 되니까 내가 출력하고자 하는 컬럼만 SELECT절에 작성해주면 된다. 전체주소와 전화번호는 '||'을 사용하여 문자열을 붙혀서 출력하고자 하는 데이터를 만들어주었다.
'💡문제 풀이 > 프로그래머스 - Oracle' 카테고리의 다른 글
조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기 / 164671 (0) | 2024.06.26 |
---|---|
조건에 맞는 사용자와 총 거래금액 조회하기 / 164668 (0) | 2024.06.26 |
대여 기록이 존재하는 자동차 리스트 구하기 / 157341 (0) | 2024.06.26 |
자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기 / 157340 (0) | 2024.06.26 |
대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기 / 151139 (0) | 2024.06.26 |