ABOUT ME

-

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

     

     

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

     

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

     

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

     

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

     

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

     

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

     

     

    프로그래머스 문제 모음

    728x90

     

     


    문제 풀이

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

     

     

     

    1. 성분으로 구분한 아이스크림 총 주문량

    상반기 동안 아이스크림 성분 타입과 성분 타입에 대한 아이스크림의 총주문량을 총주문량이 작은 순서대로 조회하는 SQL 문을 작성해주세요.
    이때 총주문량을 나타내는 컬럼명은 TOTAL_ORDER 지정해주세요.

     

    SELECT i.ingredient_type, sum(f.total_order) as total_order
    from first_half f, icecream_info i
    where f.flavor = i.flavor 
    group by i.ingredient_type
    order by 2

     

     

     

     

    2. 루시와 엘라 찾기

    동물 보호소에 들어온 동물 이름이 Lucy, Ella, Pickle, Rogan, Sabrina, Mitty 동물의 아이디와 이름, 성별 중성화 여부를 조회하는 SQL 문을 작성해주세요.

     

    SELECT animal_id, name, sex_upon_intake
    from animal_ins
    where name in ('Lucy', 'Ella', 'Pickle', 'Rogan', 'Sabrina', 'Mitty')
    order by animal_id

     

    반응형

     

     

    3. 가격대 별 상품 개수 구하기

    PRODUCT 테이블에서 만원 단위의 가격대 별로 상품 개수를 출력하는 SQL 문을 작성해주세요.
    이때 컬럼명은 각각 컬럼명은 PRICE_GROUP, PRODUCTS 지정해주시고 가격대 정보는 구간의 최소금액(10,000 이상 ~ 20,000 미만인 구간인 경우 10,000)으로 표시해주세요.
    결과는 가격대를 기준으로 오름차순 정렬해주세요.

     

    SELECT trunc(price, -4) as price_group, count(*) as products
    from product
    group by trunc(price, -4)
    order by 1

     

     

     

     

    4. 3월에 태어난 여성 회원 목록 출력하기

    MEMBER_PROFILE 테이블에서 생일이 3월인 여성 회원의 ID, 이름, 성별, 생년월일을 조회하는 SQL문을 작성해주세요
    이때 전화번호가 NULL 경우는 출력대상에서 제외시켜 주시고, 결과는 회원ID 기준으로 오름차순 정렬해주세요.

     

    SELECT member_id, member_name, gender, to_char(date_of_birth, 'yyyy-mm-dd')
    from member_profile
    where to_char(date_of_birth, 'mm') = 03 and gender = 'W' and tlno is not null
    order by 1

     

     

     

     

    5. 재구매가 일어난 상품과 회원 리스트 구하기

    ONLINE_SALE 테이블에서 동일한 회원이 동일한 상품을 재구매한 데이터를 구하여, 재구매한 회원 ID 재구매한 상품 ID 출력하는 SQL문을 작성해주세요.
    결과는 회원 ID 기준으로 오름차순 정렬해주시고 회원 ID 같다면 상품 ID 기준으로 내림차순 정렬해주세요.

     

    SELECT USER_ID, PRODUCT_ID
    FROM ONLINE_SALE
    GROUP BY USER_ID, product_id 
    having count(*) > 1
    order by user_id, product_id desc

     

     

     

    728x90
    반응형

    댓글

Designed by Tistory.