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
'코딩테스트 > Oracle' 카테고리의 다른 글
[프로그래머스] 조건에 맞는 사용자 정보 조회하기 - ORACLE (0) | 2023.03.13 |
---|---|
[프로그래머스] 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기 - GROUP BY (1) | 2023.02.24 |
[프로그래머스] 카테고리 별 도서 판매량 집계하기 (1) | 2023.02.18 |
[프로그래머스] 조건에 맞는 도서와 저자 리스트 출력하기 (0) | 2023.02.18 |
[프로그래머스] 가격대 별 상품 개수 구하기 (0) | 2023.02.18 |