ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [ORACLE] 매일 5개. 프로그래머스 SQL 문제 풀기 챌린지 Day 11
    Study/SQL 2024. 6. 9. 15:22
    728x90
    반응형

     

     

    오늘부터 새로운 도전을 시작하려고 합니다.

     

    바로 하루 5개씩 SQL 관련 문제를 푸는 것입니다.

     

    매일 프로그래머스에서 제공하는 SQL 문제5개씩 해결하며, 데이터 베이스 관리 및 쿼리 작성 능력을 성장시키고자 합니다.

     

    또한, 오라클(Oracle) 데이터베이스를 사용하여 문제를 해결함으로써, 실제 업무 환경에서 마주칠 수 있는 다양한 상황에 대비하고자 합니다.

     

    매일 바쁜 일상 속에서 새로운 것을 배우고 성장하는 것은 어렵겠지만, 도전이라도 하면 어떨까 합니다.

     

    프로그래머스는 무료로 다양한 난이도의 문제를 제공하기 때문에, 저는 제일 낮은 난이도부터 정답률이 높은 순서대로 풀어 보려고 합니다.

     

     

    프로그래머스 문제 모음

    728x90

     

     


    문제 풀이

    해당 문제에 대한 자세한 내용은 프로그래머스에서 찾아볼 수 있습니다!

     

     

     

    1. 오랜 기간 보호한 동물(2)

    입양을 동물 , 보호 기간이 가장 길었던 동물 마리의 아이디와 이름을 조회하는 SQL문을 작성해주세요.
    이때 결과는 보호 기간이 순으로 조회해야 합니다.

     

    SELECT o.animal_id, o.name
    from animal_ins i, animal_outs o
    where i.animal_id = o.animal_id
    order by o.datetime - i.datetime desc
    fetch first 2 rows only

     

     

     

     

    2. 조건별로 분류하여 주문상태 출력하기

    FOOD_ORDER 테이블에서 5 1일을 기준으로 주문 ID, 제품 ID, 출고일자, 출고여부를 조회하는 SQL문을 작성해주세요.
    출고여부는 5 1일까지 출고완료로 날짜는 출고 대기로 미정이면 출고미정으로 출력해주시고, 결과는 주문 ID 기준으로 오름차순 정렬해주세요.

     

    SELECT order_id, product_id, to_char(out_date, 'yyyy-mm-dd'), 
        case when to_char(out_date, 'mm-dd') <= '05-01' then '출고완료' 
        when out_date is null then '출고미정' 
        else '출고대기' end as 출고여부
    from food_order
    order by order_id

     

    반응형

     

     

    3. 대여 기록이 존재하는 자동차 리스트 구하기

    CAR_RENTAL_COMPANY_CAR 테이블과 CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블에서 자동차 종류가 '세단' 자동차들 10월에 대여를 시작한 기록이 있는 자동차 ID 리스트를 출력하는 SQL문을 작성해주세요.
    자동차 ID 리스트는 중복이 없어야 하며, 자동차 ID 기준으로 내림차순 정렬해주세요.

     

    SELECT distinct(a.car_id)
    from CAR_RENTAL_COMPANY_CAR a, CAR_RENTAL_COMPANY_RENTAL_HISTORY b
    where a.car_id = b.car_id and a.car_type = '세단' and to_char(b.start_date, 'mm') = '10'
    order by 1 desc

     

     

     

     

    4. 조건에 맞는 사용자와 총 거래금액 조회하기

    USED_GOODS_BOARD USED_GOODS_USER 테이블에서 완료된 중고 거래의 총금액이 70 이상인 사람의 회원 ID, 닉네임, 총거래금액을 조회하는 SQL문을 작성해주세요.
    결과는 총거래금액을 기준으로 오름차순 정렬해주세요.

     

    SELECT ugu.user_id, ugu.nickname, sum(ugb.price) as total_sales
    from used_goods_board ugb, used_goods_user ugu
    where ugb.writer_id = ugu.user_id and ugb.status = 'DONE'
    group by ugu.user_id, ugu.nickname
    having sum(ugb.price) >= 700000
    order by 3

     

     

     

     

    5. 즐겨찾기가 가장 많은 식당 정보 출력하기

    REST_INFO 테이블에서 음식종류별로 즐겨찾기수가 가장 많은 식당의 음식 종류, ID, 식당 이름, 즐겨찾기수를 조회하는 SQL문을 작성해주세요.
    이때 결과는 음식 종류를 기준으로 내림차순 정렬해주세요.

     

    select b.food_type, b.rest_id, b.rest_name, b.favorites
    from 
        (SELECT food_type, max(favorites) as max
        from rest_info
        group by food_type)a,
        rest_info b
    where a.food_type = b.food_type and a.max = b.favorites 
    order by 1 desc

     

     

     

    728x90
    반응형

    댓글

Designed by Tistory.