Study📚/프로그래머스

[프로그래머스] - Oracle_Lv.1 (1)

woo!na 2023. 11. 4. 20:47

문제 출처

https://programmers.co.kr

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

문제 - 풀이 - 결과

더보기

1. 조건에 부합하는 중고거래 댓글 조회하기

2. 특정 옵션이 포함된 자동차 리스트 구하기

3. 자동차 대여 기록에서 장기/단기 대여 구분하기

4. 평균 일일 대여 요금 구하기

5. 조건에 맞는 도서 리스트 출력하기

6. 과일로 만든 아이스크림 고르기

7. 인기있는 아이스크림

8. 흉부외과 또는 일반외과 의사 목록 출력하기

9. 12세 이하인 여자 환자 목록 출력하기

10. 가장 비싼 상품 구하기

11. 조건에 맞는 회원 수 구하기

12. 나이 정보가 없는 회원 수 구하기

1.  조건에 부합하는 중고거래 댓글 조회하기

SELECT UGB.TITLE, UGB.BOARD_ID, UGR.REPLY_ID, UGR.WRITER_ID
    , UGR.CONTENTS
    , TO_CHAR(UGR.CREATED_DATE,'YYYY-MM-DD') "CREATED_DATE"
FROM USED_GOODS_BOARD UGB, USED_GOODS_REPLY UGR
WHERE UGB.BOARD_ID = UGR.BOARD_ID
  AND TO_CHAR(UGB.CREATED_DATE,'YYYY-MM') = '2022-10'
ORDER BY 6, 1;

 


2. 특정 옵션이 포함된 자동차 리스트 구하기

SELECT *
FROM CAR_RENTAL_COMPANY_CAR
WHERE OPTIONS LIKE ('%네비게이션%')
ORDER BY CAR_ID DESC;

 


3.  자동차 대여 기록에서 장기/단기 대여 구분하기

SELECT HISTORY_ID, CAR_ID, TO_CHAR(START_DATE,'YYYY-MM-DD') START_DATE
    , TO_CHAR(END_DATE,'YYYY-MM-DD') END_DATE
    , CASE WHEN (END_DATE - START_DATE+1) >=30 THEN '장기 대여' 
           ELSE '단기 대여'
      END "RENT_TYPE"
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
WHERE TO_CHAR(START_DATE,'YYYY-MM') = '2022-09'
ORDER BY 1 DESC;

 


4. 평균 일일 대여 요금 구하기

SELECT ROUND(AVG(NVL(DAILY_FEE,0))) "AVERAGE_FEE"
FROM CAR_RENTAL_COMPANY_CAR
WHERE CAR_TYPE = 'SUV';

 


5. 조건에 맞는 도서 리스트 출력하기

SELECT BOOK_ID, TO_CHAR(PUBLISHED_DATE,'YYYY-MM-DD') "PUBLISHED_DATE"
FROM BOOK
WHERE EXTRACT(YEAR FROM PUBLISHED_DATE) = 2021
  AND CATEGORY = '인문'
ORDER BY 2;

 


6. 과일로 만든 아이스크림 고르기

SELECT II.FLAVOR
FROM FIRST_HALF FH JOIN ICECREAM_INFO II
ON FH.FLAVOR = II.FLAVOR
WHERE TOTAL_ORDER>3000
  AND INGREDIENT_TYPE = 'fruit_based'
ORDER BY FH.TOTAL_ORDER DESC;

 


7. 인기있는 아이스크림

SELECT FLAVOR
FROM FIRST_HALF
ORDER BY TOTAL_ORDER DESC, SHIPMENT_ID;

 


8. 흉부외과 또는 일반외과 의사 목록 출력하기

SELECT DR_NAME, DR_ID, MCDP_CD, TO_CHAR(HIRE_YMD,'YYYY-MM-DD') "HIRE_YMD"
FROM DOCTOR
WHERE MCDP_CD IN ('CS','GS')
ORDER BY 4 DESC, 1 ASC;

 


9. 12세 이하인 여자 환자 목록 출력하기

SELECT PT_NAME, PT_NO, GEND_CD, AGE, NVL(TLNO,'NONE') "TLNO"
FROM PATIENT
WHERE AGE <=12
  AND GEND_CD = 'W'
ORDER BY 4 DESC, 1;

 


10. 가장 비싼 상품 구하기

SELECT MAX(PRICE) "MAX_PRICE"
FROM PRODUCT;

 


11. 조건에 맞는 회원 수 구하기

SELECT COUNT(*) USERS
FROM USER_INFO
WHERE EXTRACT(YEAR FROM JOINED) = 2021
  AND AGE BETWEEN 20 AND 29;

 


12. 나이 정보가 없는 회원 수 구하기

SELECT COUNT(*) "USERS"
FROM USER_INFO
WHERE AGE IS NULL
GROUP BY AGE;