Study📚/프로그래머스

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

woo!na 2023. 11. 5. 18:33

문제 출처

https://programmers.co.kr

 

프로그래머스

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

programmers.co.kr

 

문제 - 풀이 - 결과

더보기

1. 최솟값 구하기

2. 고양이와 개는 몇 마리 있을까

3. 동명 동물 수 찾기

4. 루시와 엘라 찾기

5. 이름에 el이 들어가는 동물 찾기

6. 동물 수 구하기

7. 중복 제거하기

8. 중성화 여부 파악하기

9. NULL 처리하기

10. 입양 시각 구하기(1)

11. DATETIME에서 DATE로 형 변환

12. 가격이 제일 비싼 식품의 정보 출력하기

1. 최솟값 구하기

SELECT MIN(DATETIME) "시간"
FROM ANIMAL_INS;

 


2. 고양이와 개는 몇 마리 있을까

SELECT ANIMAL_TYPE, COUNT(*) "COUNT"
FROM ANIMAL_INS
WHERE UPPER(ANIMAL_TYPE) IN ('CAT','DOG')
GROUP BY ANIMAL_TYPE
ORDER BY 1;

 


3. 동명 동물 수 찾기

SELECT NAME, COUNT(*) "COUNT"
FROM ANIMAL_INS
WHERE NAME IS NOT NULL
GROUP BY NAME
HAVING COUNT(*)>1
ORDER BY 1;

 


4. 루시와 엘라 찾기

SELECT ANIMAL_ID, NAME, SEX_UPON_INTAKE
FROM ANIMAL_INS
WHERE UPPER(NAME) IN ('LUCY','ELLA','PICKLE','ROGAN','SABRINA','MITTY')
ORDER BY 1;

 


5. 이름에 el이 들어가는 동물 찾기

SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE UPPER(NAME) LIKE ('%EL%')
  AND UPPER(ANIMAL_TYPE) = 'DOG'
ORDER BY 2;

 


6. 동물 수 구하기

SELECT COUNT(*)
FROM ANIMAL_INS;

 


7. 중복 제거하기

SELECT SUM(T1.이름)
FROM
(
    SELECT 1 이름
    FROM ANIMAL_INS
    WHERE NAME IS NOT NULL
    GROUP BY NAME
)T1;

 


8. 중성화 여부 파악하기

SELECT ANIMAL_ID, NAME
    , CASE WHEN SEX_UPON_INTAKE LIKE 'Spayed%' THEN 'O'
           WHEN SEX_UPON_INTAKE LIKE 'Neutered%' THEN 'O'
           ELSE 'X' END "중성화"
FROM ANIMAL_INS
ORDER BY 1;

 


9. NULL 처리하기

SELECT ANIMAL_TYPE
    , CASE WHEN NAME IS NULL THEN 'No name'
           ELSE NAME
      END "NAME"
    , SEX_UPON_INTAKE
FROM ANIMAL_INS
ORDER BY ANIMAL_ID;

 


10. 입양 시각 구하기(1)

SELECT TO_NUMBER(TO_CHAR(DATETIME,'HH24')) "HOUR",COUNT(*) "COUNT"
FROM ANIMAL_OUTS
WHERE TO_NUMBER(TO_CHAR(DATETIME,'HH24')) BETWEEN 9 AND 19
GROUP BY TO_NUMBER(TO_CHAR(DATETIME,'HH24'))
ORDER BY 1;

 


11. DATETIME에서 DATE로 형 변환

SELECT ANIMAL_ID, NAME, TO_CHAR(DATETIME,'YYYY-MM-DD') "날짜"
FROM ANIMAL_INS
ORDER BY 1;

 


12. 가격이 제일 비싼 식품의 정보 출력하기

SELECT PRODUCT_ID, PRODUCT_NAME, PRODUCT_CD, CATEGORY, PRICE
FROM FOOD_PRODUCT
WHERE PRICE = (SELECT MAX(PRICE)
               FROM FOOD_PRODUCT);