본문 바로가기

728x90

프로그래머스(Oracle)

(17)
[프로그래머스 (Oracle)] 5월 식품들의 총매출 조회하기 코드 힌트1. JOIN을 사용한 데이터 결합두 테이블을 JOIN하여 관련 데이터를 결합합니다.PRODUCT_ID를 기준으로 FOOD_PRODUCT 테이블과 FOOD_ORDER 테이블을 연결하여 필요한 정보를 가져옵니다.2. 날짜 형식 변환 및 필터링TO_CHAR를 사용하여 날짜 필드를 특정 형식으로 변환할 수 있습니다.PRODUCE_DATE를 'YYYY-MM' 형식으로 변환하여 2022년 5월에 해당하는 데이터를 필터링합니다.3. 판매 총액 계산SUM 함수로 각 제품의 총 판매 금액을 계산합니다.O.AMOUNT * P.PRICE를 사용하여 판매된 양과 가격을 곱하여 총 금액을 구하고 이를 합산합니다.4. 결과 정렬ORDER BY 절로 결과를 정렬합니다.TOTAL_SALES 기준으로 내림차순으로 정렬하며,..
[프로그래머스 (Oracle)] 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기 코드 힌트1. 조인 활용두 테이블(USED_GOODS_BOARD, USED_GOODS_FILE)을 JOIN하여 관련 데이터를 결합합니다.ON B.BOARD_ID = F.BOARD_ID 조건을 통해 각 게시물에 대한 파일 정보를 가져옵니다.2. 조회수 최대값 조건WHERE B.VIEWS = (SELECT MAX(VIEWS) FROM USED_GOODS_BOARD)를 사용하여 조회수가 가장 높은 게시물만 선택합니다.서브쿼리를 통해 가장 높은 조회수를 계산하고, 이를 사용하여 해당 게시물과 관련된 파일을 필터링합니다.3. 파일 경로 생성SELECT문에서 || 연산자를 사용하여 파일 경로를 생성합니다./home/grep/src/, BOARD_ID, FILE_ID, FILE_NAME, FILE_EXT를 결합하여 ..
[프로그래머스 (Oracle)] 조건에 부합하는 중고거래 상태 조회하기 코드 힌트CASE 문을 이용한 상태 변환CASE 문을 사용하여 상태값을 조건에 따라 변환합니다.WHEN 'SALE' THEN '판매중', WHEN 'RESERVED' THEN '예약중', ELSE '거래완료'와 같이 각 상태값을 텍스트로 변환할 수 있습니다.날짜 형식 변환TO_CHAR를 사용하여 날짜를 원하는 형식으로 변환합니다.CREATED_DATE 필드를 'YYYY-MM-DD' 형식으로 변환하여 특정 날짜와 비교할 수 있습니다.정렬ORDER BY 절을 사용하여 데이터를 정렬합니다.BOARD_ID DESC를 사용하여 게시글 ID 기준으로 내림차순 정렬해 최신 데이터가 가장 위에 표시됩니다.  정답은 더보기 클릭더보기더보기-- 게시글 ID, 작성자 ID, 제목, 가격을 선택SELECT BOARD_ID, ..
[프로그래머스 (Oracle)] 조건에 맞는 사용자와 총 거래금액 조회하기 코드 힌트거래 완료된 기록만 조회:WHERE STATUS = 'DONE' 조건을 사용하여 거래가 완료된 상품들만 조회하고, 미완료된 거래는 제외합니다.거래가 완료된 상태만 합산하여 총 판매 금액을 계산합니다.사용자별 판매 금액 계산:GROUP BY U.USER_ID, U.NICKNAME를 사용하여 각 사용자별로 판매한 금액을 합산합니다.이때, SUM(B.PRICE)를 통해 각 사용자가 완료한 거래들의 총 판매 금액을 구합니다.판매 금액 필터링:HAVING SUM(B.PRICE) >= 700000 조건을 사용하여 700,000원 이상의 판매 금액을 달성한 사용자만 결과에 포함시킵니다.HAVING은 집계 함수 이후의 필터링에 사용됩니다.총 판매 금액에 따른 정렬:ORDER BY TOTAL_SALES로 결과를..
[프로그래머스 (Oracle)] 대여 기록이 존재하는 자동차 리스트 구하기 코드 힌트차량 필터링:이 쿼리는 세단 타입의 차량만을 대상으로 합니다.차량 유형을 CAR_TYPE = '세단'으로 필터링하여 특정 타입의 차량만 조회합니다.특정 월에 대한 렌탈 기록 조회:이 쿼리는 TO_CHAR(H.START_DATE, 'YYYY-MM') = '2022-10' 조건을 통해 2022년 10월에 대여된 기록만을 조회합니다.날짜를 문자열로 변환하여 특정 월에 맞는 기록을 쉽게 필터링합니다.JOIN과 차량 ID 중복 제거:JOIN을 사용하여 차량과 렌탈 기록을 연결하고, 중복된 차량 ID를 제거하기 위해 DISTINCT를 사용합니다.이 방법으로 한 번이라도 렌탈된 차량 ID만 결과에 포함됩니다.차량 ID 내림차순 정렬:결과는 ORDER BY C.CAR_ID DESC에 따라 차량 ID가 내림차순..
[프로그래머스 (Oracle)] 식품분류별 가장 비싼 식품의 정보 조회하기 코드 힌트카테고리별 가장 비싼 음식 제품 찾기FOOD_PRODUCT 테이블에서 '과자', '국', '김치', '식용유' 카테고리에 해당하는 상품들 중 가장 높은 가격을 가진 상품을 추출합니다.서브쿼리에서 각 카테고리별로 가장 높은 가격을 찾고, 그 결과를 메인 쿼리에서 조인하여 해당 가격의 제품 정보를 가져옵니다.정렬 기준가장 비싼 상품부터 내림차순으로 정렬되며, 동일한 가격의 제품이 여러 개일 경우에도 모두 표시됩니다. 정답은 더보기 클릭더보기더보기SELECT FP.CATEGORY, FP.PRODUCT_NAME, FP.PRICE AS MAX_PRICE -- FOOD_PRODUCT 테이블에서 카테고리, 제품명, 가격을 선택하되, 가격을 MAX_PRICE로 별칭 지정 FROM FOOD_PRODUCT F..
[프로그래머스 (Oracle)] 보호소에서 중성화한 동물 코드 힌트동물 입양 및 중성화 상태 매칭ANIMAL_INS 테이블에서 동물이 입양될 때 중성화되지 않은 상태(SEX_UPON_INTAKE LIKE 'Intact%')인 데이터를 찾고, ANIMAL_OUTS 테이블에서 해당 동물이 입양된 후 중성화된 상태(SEX_UPON_OUTCOME LIKE 'Spayed%' 또는 'Neutered%')로 기록된 데이터를 조인합니다.동물 고유 ID 기준 정렬결과는 ANIMAL_ID를 기준으로 정렬되며, 동물의 ID, 종류, 그리고 이름을 반환합니다.조건을 충족하는 데이터만 반환입양 시에는 중성화되지 않은 동물이었으나, 입양 후 중성화된 동물만 필터링하여 목록에 표시됩니다. 정답은 더보기 클릭더보기더보기SELECT I.ANIMAL_ID, I.ANIMAL_TYPE, I.NA..
[프로그래머스 (Oracle)] 오랜 기간 보호한 동물(1) 힌트LEFT OUTER JOIN 사용:ANIMAL_INS 테이블의 모든 레코드와 ANIMAL_OUTS 테이블의 일치하는 레코드를 결합합니다.이 때, ANIMAL_OUTS에 일치하는 레코드가 없는 경우에도 ANIMAL_INS의 레코드는 유지됩니다.조건 필터링:WHERE 절에서 O.DATETIME IS NULL 조건을 사용하여, ANIMAL_OUTS에 없는 동물만 선택합니다.즉, 아직 입양되지 않은 동물의 정보를 찾고 있습니다.정렬 및 제한:ORDER BY I.DATETIME으로 입소 날짜를 기준으로 오름차순 정렬합니다.LIMIT 3을 사용하여 결과를 3개로 제한합니다.정답은 더보기 클릭더보기더보기SELECT I.NAME, I.DATETIME -- 동물의 이름과 입소 날짜 선택 FROM ANIMAL_IN..

728x90