728x90
320x100

문제설명

 

 게시판 정보 USED_GOODS_BOARD
 첨부파일 정보 USED_GOODS_USER


 조건 1  ) 중고거래 게시물을 3건이상 등록한 사용자


 출력    ) 사용자ID(USER_ID),닉네임(NICKNAME),전체주소(CITY||STREET_ADDRESS1||STREET_ADDRESS2),전화번호(TLNO)


 출력조건 ) 주소 : 시 도로명주소 상세주소 전화번호 XXX-XXXX-XXXX 형태로 하이폰 문자 삽입


 정렬조건 ) 회원ID 기준 내림차순 정렬

 

제가 생각하는 해당문제의 핵심

  1. 서로 다른 컬럼의 데이터를 내가 원하는 값으로 변형하여 사용할 수 있는가

  2. 많은 값을 리턴하는 서브쿼리의 값을 사용할 줄 아는가

 

(물론.. 제 쿼리가 제일 효율적지는 않아서 더 짧고 쉽게 작성하는 법이 있겠지만 저는 이렇게 접근했습니다 ㅠ.ㅠ)

 

SELECT DISTINCT B.USER_ID -- 중복 ID 제거
               ,B.NICKNAME   
               ,B.CITY||' '||B.STREET_ADDRESS1||' '||B.STREET_ADDRESS2 전체주소 -- 서로 다른 컬럼 변형
               ,SUBSTR(B.TLNO,1,3)||'-'||SUBSTR(B.TLNO,4,4)||'-'||SUBSTR(B.TLNO,8,4) 전화번호 -- 서로 다른 컬럼 변형
FROM USED_GOODS_BOARD A, USED_GOODS_USER B
WHERE A.WRITER_ID = B.USER_ID(+)
AND  WRITER_ID IN (
                        SELECT WRITER_ID
                        FROM   USED_GOODS_BOARD                        
                        GROUP BY WRITER_ID
                        HAVING  COUNT(BOARD_ID) >= 3  -- 게시글 3개 이상 작성한 아이디 찾기
                   )
ORDER BY USER_ID DESC -- 내림차순

 

다 풀어놓고 전화번호 짜른 값 사이에 하이푼을 안넣어서 뭔가 싶었네요 ㅠㅠ.. 오늘도 한 문제 끄적여봤습니다! 

 

728x90
300x250

+ Recent posts