코딩테스트/Oracle

[프로그래머스] 조건에 맞는 사용자와 총 거래금액 조회하기 - ORACLE

양쏘쏘 2023. 3. 13. 13:48
728x90
반응형

 

이번 문제는 '테이블에서 중고 거래 게시물을 3건 이상 등록한 사용자의 사용자 ID' 이 문장이 중요했고

나머지는 문자열 합치는 거라 그렇게 어렵진않을 것 같네요. 

앞서 말한 문장을 아래처럼 Group by, having으로 표현할 수 있다면 조인을 걸거나 USER_ID의 조건으로 IN을 걸어서 풀 수 있어요.

SELECT WRITER_ID
FROM USED_GOODS_BOARD
GROUP BY WRITER_ID
HAVING COUNT(*) >= 3

 

SUBSTR로 문자열 나누고 ||이나 concat 사용해서 문자열 결합하는 건 그리 어렵지않으니 쉽게 해결할 수 있는 문제네요.

-- oracle
SELECT A.USER_ID,A.NICKNAME,A.CITY || ' ' || STREET_ADDRESS1 || ' ' ||STREET_ADDRESS2 AS 전체주소, 
SUBSTR(TLNO,0,3) || '-' || SUBSTR(TLNO,4,4) || '-' || SUBSTR(TLNO,8,4) AS 전화번호
FROM USED_GOODS_USER A,
(SELECT WRITER_ID
FROM USED_GOODS_BOARD
GROUP BY WRITER_ID
HAVING COUNT(*) >= 3) B
WHERE A.USER_ID = B.WRITER_ID
ORDER BY A.USER_ID DESC

 

문제 제목과는 다르게 총 거래금액을 조회하지는 않아서 의문이긴한데 신규로 올라온 문제라 풀어봤습니다. 

728x90