728x90

코딩테스트/Oracle 6

[프로그래머스] 조건에 맞는 사용자 정보 조회하기 - ORACLE

GROUP BY,HAVING만 잘 써서 서브쿼리(인라인 뷰 방식)을 만든다면 어렵지않게 풀 수 있는 문제입니다. --oracle SELECT A.USER_ID,A.NICKNAME,B.PRICE AS TOTAL_SALES FROM USED_GOODS_USER A, (SELECT WRITER_ID,SUM(PRICE) AS PRICE FROM USED_GOODS_BOARD GROUP BY WRITER_ID,STATUS HAVING STATUS = 'DONE' AND SUM(PRICE) >= 700000) B WHERE A.USER_ID = B.WRITER_ID ORDER BY TOTAL_SALES

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

이번 문제는 '테이블에서 중고 거래 게시물을 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 |..

[프로그래머스] 조건에 맞는 도서와 저자 리스트 출력하기

간단한 JOIN 문제이다. JOIN문제는 차근차근 출력해보면서 푸는 걸 추천한다. 그리고 프로그래머스에서는 매번 DATE 타입의 포맷을 지정해주기 때문에 TO_CHAR로 변환하는 방법은 당연히 알고있어야한다. --오라클 SELECT A.BOOK_ID,B.AUTHOR_NAME, TO_CHAR(A.PUBLISHED_DATE,'YYYY-MM-DD') AS PUBLISHED_DATE FROM BOOK A, AUTHOR B WHERE A.AUTHOR_ID = B.AUTHOR_ID AND A.CATEGORY = '경제' ORDER BY A.PUBLISHED_DATE

[프로그래머스] 가격대 별 상품 개수 구하기

가격대별로 상품 개수를 구하는데 여기서 핵심은 n만원대를 어떻게 나눌 것인가이다. TRUNC(PRICE/10000,0)으로 몇 만원인지 구하고 다시 10,000을 곱하는 방법으로 풀어줬는데 CASE WHEN이나 SUBSTR을 사용하는 방법도 있으나 10만원 이하라는 보장이 없기 때문에 아래와 같이 풀어주는 것이 제일 정확한 방법이지 않을까싶다. --오라클 코드 SELECT TRUNC(PRICE/10000,0)*10000 AS PRICE_GROUP, COUNT(PRODUCT_ID) AS PRODUCTS FROM PRODUCT GROUP BY TRUNC(PRICE/10000,0)*10000 ORDER BY PRICE_GROUP

728x90
반응형