SQL : ORACLE
Level 4
X 우유와 요거트가 담긴 장바구니
ㄴ SELECT DISTINCT(M.CART_ID) CART_ID FROM (
SELECT CART_ID, NAME FROM CART_PRODUCTS WHERE NAME = 'Milk') M,
(SELECT CART_ID, NAME FROM CART_PRODUCTS WHERE NAME = 'Yogurt') Y
WHERE M.CART_ID = Y.CART_ID ORDER BY CART_ID;
ㄴ SELECT cart_id FROM cart_products WHERE name = 'Milk'
INTERSECT SELECT cart_id FROM cart_products WHERE name = 'Yogurt'
ORDER BY cart_id;
X 입양 시각 구하기(2)
SELECT A.HOUR, CASE WHEN B.COUNT IS NULL THEN 0 ELSE B.COUNT END AS COUNT FROM (SELECT LEVEL-1 HOUR FROM DUAL CONNECT BY LEVEL <= 24) A LEFT JOIN ( SELECT TO_CHAR(DATETIME, 'HH24') HOUR, COUNT(*) COUNT FROM ANIMAL_OUTS GROUP BY TO_CHAR(DATETIME, 'HH24') ORDER BY TO_CHAR(DATETIME, 'HH24')) B ON A.HOUR = B.HOUR ORDER BY A.HOUR;
보호소에서 중성화한 동물
Level 3 쉬웠음
없어진 기록 찾기
오랜기간 보호한 동물(1)
ㄴDUAL ROWNUM
있었는데요 없었습니다
오랜기간 보호한 동물(2)
Level 2
1 최솟값구하기
ㄴ SELECT MIN(DATETIME) FROM ANIMAL_INS;
2 중복제거하기
ㄴ SELECT COUNT(DISTINCT NAME) FROM ANIMAL_INS;
3 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;
ㄴ SELECT ANIMAL_TYPE, NVL(NAME, 'No name') AS NAME, SEX_UPON_INTAKE FROM ANIMAL_INS ORDER BY ANIMAL_ID;
4 입양 시각 구하기(1)
ㄴ SELECT TO_CHAR(DATETIME, 'hh24') HOUR, COUNT(*) COUNT FROM ANIMAL_OUTS GROUP BY TO_CHAR(DATETIME, 'hh24') HAVING TO_CHAR(DATETIME, 'hh24') >= 09 AND TO_CHAR(DATETIME, 'hh24') < 20 ORDER BY HOUR;
5 이름에 el이 들어가는 동물 찾기
ㄴSELECT ANIMAL_ID, NAME FROM ANIMAL_INS WHERE UPPER(NAME) LIKE '%EL%' AND ANIMAL_TYPE = 'Dog' ORDER BY NAME;
대소문자 구분 X > UPPER(NAME)
6 DATETIME에서 DATE로 형 변환
TO_CHAR(DATETIME, 'yyyy-MM-dd')
7 동물 수 구하기
8 고양이와 개는 몇 마리 있을까
9 동명 동물 수 찾기
ㄴ HAVING COUNT(*) >= 2 AND NAME IS NOT NULL
10 루시와 엘라 찾기
WHERE name IN ('Lucy', 'Ella', 'Pickle', 'Rogan', 'Sabrina', 'Mitty')
11 중성화 여부 파악하기 (한 번 더 )
ㄴ SELECT ANIMAL_ID, NAME, CASE WHEN SEX_UPON_INTAKE LIKE 'Intact%' then 'X' else 'O' end
as 중성화 from animal_ins order by animal_id;
Level 1
1 모든 레코드 조회하기
2 역순정렬하기
3 어린 동물 찾기
ㄴ WHERE NOT CONDITION = 'Aged';
4 여러 기준으로 정렬하기
ㄴ ORDER BY NAME, DATETIME DESC;
5 상위 n개 레코드
ㄴ ROWNUM
6 최댓값구하기
7 아픈 동물 찾기
8 동물의 아이디와 이름
9 이름이 없는 동물의 아이디
10 이름이 있는 동물의 아이디
'코딩테스트 문제 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 회문확인 (0) | 2022.12.18 |
---|---|
[프로그래머스] 분수의 덧셈 (0) | 2022.12.13 |
프로그래머스 스킬 체크 (0) | 2021.12.08 |
[프로그래머스] 완주하지 못한 선수 / Java (0) | 2021.06.23 |
[프로그래머스] 가운데 글자 가져오기 / Java (0) | 2021.05.16 |