본문 바로가기

728x90

프로그래머스(Oracle)

(17)
[프로그래머스 (Oracle)] 우유와 요거트가 담긴 장바구니 힌트INTERSECT 연산자 사용:INTERSECT는 두 쿼리의 교집합을 구하는 연산자입니다.즉, 'Milk'와 'Yogurt'가 모두 포함된 장바구니만 추출됩니다.개별 조건 쿼리:첫 번째 쿼리: 'Milk'를 포함한 CART_ID 목록을 추출합니다.두 번째 쿼리: 'Yogurt'를 포함한 CART_ID 목록을 추출합니다.중복 없이 공통된 CART_ID만 추출:INTERSECT는 두 쿼리에서 공통으로 나타나는 CART_ID만 반환합니다.정렬 조건:결과를 CART_ID 기준으로 정렬하여 보기 쉽게 정렬합니다.정답은 더보기 클릭더보기SELECT CART_ID -- 'Milk'를 포함한 장바구니 ID 조회 FROM CART_PRODUCTS WHERE NAME = 'Milk..
[프로그래머스 (Oracle)] 헤비 유저가 소유한 장소 코드 힌트서브 쿼리 사용:GROUP BY와 HAVING 절을 사용하여 2개 이상의 장소를 등록한 호스트를 구합니다.이 서브 쿼리의 결과와 PLACES 테이블을 JOIN하여 해당 호스트의 모든 장소를 가져옵니다.GROUP BY와 HAVING 활용:GROUP BY는 동일한 호스트에 등록된 장소들을 그룹화합니다.HAVING COUNT(*) > 1은 그룹 내에 2개 이상의 장소가 있는 호스트만 필터링합니다.JOIN을 사용해 조건 매칭:메인 쿼리에서는 PLACES 테이블과 2개 이상의 장소를 등록한 호스트의 정보를 JOIN합니다.정렬 조건:결과를 ID 기준으로 정렬하여 보기 쉽게 정렬합니다. 정답은 더보기 클릭더보기더보기SELECT P.ID, P.NAME, P.HOST_ID -- 장소의 ID, 이름, 호스트 I..
[프로그래머스 (Oracle)] 저자 별 카테고리 별 매출액 집계하기 코드 힌트조인 구조:BOOK 테이블과 AUTHOR 테이블을 AUTHOR_ID로 조인하여 저자의 정보를 가져옵니다.BOOK_SALES 테이블과 BOOK 테이블을 BOOK_ID로 조인하여 판매 정보와 책의 정보를 연결합니다.날짜 필터링:TO_CHAR(S.SALES_DATE, 'YYYY-MM') = '2022-01'를 통해 2022년 1월의 판매 기록만 가져옵니다.매출 계산:SUM(B.PRICE * S.SALES)는 책의 가격과 판매 수량을 곱한 후, 각 저자와 카테고리별로 총 매출을 계산합니다.그룹화:GROUP BY A.AUTHOR_ID, A.AUTHOR_NAME, B.CATEGORY를 통해 저자와 카테고리별로 결과를 그룹화하여 매출을 집계합니다.정렬:ORDER BY A.AUTHOR_ID, B.CATEGOR..
[프로그래머스 (Oracle)] 조건에 맞는 사용자 정보 조회하기 코드 힌트주소 결합CITY || ' ' || STREET_ADDRESS1 || ' ' || STREET_ADDRESS2를 사용하여 사용자의 주소를 결합하여 전체 주소를 생성합니다.이는 각 사용자의 주소 정보를 쉽게 확인할 수 있도록 합니다.전화번호 포맷 변환REGEXP_REPLACE 함수를 사용하여 전화번호(TLNO)를 특정 형식(\1-\2-\3)으로 변환합니다.이는 전화번호의 가독성을 높이며, 특정 형식으로 데이터를 출력합니다.서브쿼리 사용서브쿼리를 통해 USED_GOODS_BOARD 테이블에서 작성자 ID(WRITER_ID)를 그룹화하고, 게시글 수가 3개 이상인 작성자만 필터링합니다.이를 통해 활동성이 높은 사용자만 선택하여 결과를 정제합니다.조인 조건ON U.USER_ID = F.WRITER_ID..
[프로그래머스 (Oracle)] 년, 월, 성별 별 상품 구매 회원 수 구하기 힌트날짜 처리TO_CHAR(SALES_DATE, 'YYYY')와 TO_NUMBER(TO_CHAR(SALES_DATE, 'MM'))를 사용하여 날짜에서 연도와 월을 추출합니다.이는 후속 집계 및 정렬을 용이하게 합니다.JOIN 사용USER_INFO 테이블과 ONLINE_SALE 테이블을 USER_ID를 기준으로 조인하여 판매와 관련된 사용자 정보를 결합합니다.이를 통해 판매 기록에 대한 사용자 정보를 확보할 수 있습니다.조건 필터링WHERE GENDER IS NOT NULL 조건을 사용하여 성별 정보가 없는 레코드는 제외합니다.이를 통해 결과의 정확성을 높입니다.그룹화와 집계GROUP BY 절을 통해 연도, 월, 성별에 따라 데이터를 그룹화하고, 각 그룹의 고유 사용자 수를 계산합니다.COUNT(DISTI..
[프로그래머스 (Oracle)] 즐겨찾기가 가장 많은 식당 정보 출력하기 코드 힌트1. 서브쿼리 사용서브쿼리를 통해 각 음식 종류별로 가장 많은 즐겨찾기를 받은 식당의 정보를 추출합니다.이 서브쿼리는 음식 종류(Food Type)와 그에 대한 최대 즐겨찾기 수(Favorites)를 반환합니다.2. 조인 조건원본 REST_INFO 테이블과 서브쿼리 결과(MAX_I)를 조인하여 최대 즐겨찾기를 가진 식당의 세부 정보를 가져옵니다.조인은 음식 종류와 즐겨찾기 수를 기준으로 수행합니다.3. 정렬결과는 음식 종류(Food Type)를 기준으로 내림차순으로 정렬되어, 가장 인기 있는 음식 종류가 먼저 나타나도록 합니다. 정답은 더보기 클릭더보기더보기SELECT I.FOOD_TYPE, I.REST_ID, I.REST_NAME, I.FAVORITES -- 음식 종류(Food Type), ..
[프로그래머스 (Oracle)] 취소되지 않은 진료 예약 조회하기 힌트1. 테이블 간의 조인PATIENT, APPOINTMENT, DOCTOR 테이블을 이용해 환자, 예약, 의사 정보를 결합해 조회합니다.환자와 예약 정보는 PT_NO를 기준으로 조인하고, 예약 정보와 의사는 MDDR_ID(의사 ID)를 기준으로 조인합니다.2. 예약 조건예약 날짜는 '2022-04-13'로 지정되어 있으며, 이 날짜에 해당하는 예약을 찾습니다.진료과목은 'CS'(예: 외과)로 필터링하며, 해당 과목에 해당하는 의사를 선택합니다.예약 취소 여부가 'N'인 예약만 포함해, 취소되지 않은 예약만 조회합니다.3. 정렬결과는 예약 날짜를 기준으로 오름차순으로 정렬됩니다. 정답은 더보기 클릭더보기더보기SELECT A.APNT_NO, P.PT_NAME, A.PT_NO, A.MCDP_CD, D.DR_..
[프로그래머스 (Oracle)] 서울에 위치한 식당 목록 출력하기 코드 힌트1. JOIN을 사용한 데이터 결합REST_INFO 테이블과 REST_REVIEW 테이블을 JOIN하여 연결된 데이터를 조회합니다.REST_ID를 기준으로 두 테이블을 결합하여 리뷰와 식당 정보를 함께 출력합니다.2. 주소 필터링WHERE 절에서 LIKE '서울%'을 사용하여 주소가 '서울'로 시작하는 식당만 필터링합니다.LIKE는 특정 패턴과 일치하는 값을 필터링할 때 사용됩니다.3. 평균 리뷰 점수 계산AVG 함수를 사용하여 각 식당의 평균 리뷰 점수를 계산합니다.ROUND(AVG(...), 2)로 평균을 소수점 둘째 자리까지 반올림하여 표시합니다.4. 그룹화된 데이터 정렬GROUP BY로 각 식당을 그룹화하여 해당 그룹의 평균 리뷰 점수를 구합니다.ORDER BY SCORE DESC, FA..

728x90