알고리즘 풀이 방법입니다.
문제(Problem) -> 생각(Think) -> 해결책(Solution) -> 리뷰(Review) 를 통해서 정리해서 작성합니다.
Problem📄
https://programmers.co.kr/learn/challenges?tab=all_challenges
코딩테스트 연습
기초부터 차근차근, 직접 코드를 작성해 보세요.
programmers.co.kr
Oracle Level 문제
Think🤔
상위 n개 레코드
여러 기준으로 정렬하기
동물의 아이디와 이름
어린 동물 찾기
아픈 동물 찾기
이름이 있는 동물의 아이디
역순 정렬하기
이름이 없는 동물의 아이디
최댓값 구하기
모든 레코드 조회하기
Solution✍
모든 동물 아이디와 이름,보호 시작일을 이름 순으로 조회
만약 이름이 같으면 보호를 나중에 시작한 동물
-- 코드를 입력하세요 보호 시작일
SELECT ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION , NAME , SEX_UPON_INTAKE
FROM ANIMAL_INS
ORDER BY NAME, INTAKE_CONDITION DESC;
-- 코드를 입력하세요
SELECT ANIMAL_ID, NAME, DATETIME
FROM ANIMAL_INS
ORDER BY NAME, DATETIME DESC;
SELECT NAME
FROM ANIMAL_INS
ORDER BY DATETIME ASC
LIMIT 1;
MYSQL에서는 LIMIT 1이 있음 하지만 ORACLE에는 존재하지 않음
SELECT NAME
FROM ANIMAL_INS
WHERE ROWNUM = 1
ORDER BY DATETIME ASC;
SELECT A.NAME
FROM (SELECT *
FROM ANIMAL_INS
ORDER BY DATETIME) A
WHERE ROWNUM = 1;
인라인뷰 없이 생성되면 ROWNUM이 실행되고 그다음 ORDER BY 가 실행되서 ROWNUM의 값이 이상하게 나오는데
프럼절에서 먼저 정렬을 해주고 그 NAME값을 ROWNUM 1로 찾으면 정렬 후 찾는거라 가능하다.
그냥 ID순으로 조회하는 문제
-- 코드를 입력하세요
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
ORDER BY ANIMAL_ID ASC;
모든 레코드는 SELECT의 별칭에서 ===> *로 바꾸면 그만
-- 코드를 입력하세요
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE INTAKE_CONDITION LIKE 'Sick'
ORDER BY ANIMAL_ID;
아픈 동물 출력은 ID순으로!!
-- 코드를 입력하세요
SELECT NAME, DATETIME
FROM ANIMAL_INS
ORDER BY ANIMAL_ID DESC;
동물 보호소에 있고, 이름이 있음 , ID 오름차순
-- 코드를 입력하세요
SELECT ANIMAL_ID
FROM ANIMAL_INS
WHERE NAME IS NOT NULL
ORDER BY ANIMAL_ID;
이름이 널 이 아닌것
IS NOT NULL
그렇다면 <> NULL 이런건 될까?>
된다
SELECT ANIMAL_ID
FROM ANIMAL_INS
WHERE NAME <> 'NULL'
ORDER BY ANIMAL_ID;
-- 코드를 입력하세요
SELECT ANIMAL_ID
FROM ANIMAL_INS
WHERE NAME IS NULL
ORDER BY ANIMAL_ID;
-- 코드를 입력하세요
SELECT A.DATETIME AS 시간
FROM (SELECT *
FROM ANIMAL_INS
ORDER BY DATETIME DESC) A
WHERE ROWNUM = 1;
서브쿼리에서 ';' 사용하면 안됨
Review🤩
LIMIT 대신 ROWNUM으로 처리하는 부분이 많아서 부족한 점을 배웠다.
'Algorithm' 카테고리의 다른 글
[프로그래머스] 두 정수 사이의 합 (0) | 2022.02.24 |
---|---|
[프로그래머스] SQL 2LEVEL(고양이와 개는 몇 마리, 루시와 엘라 찾기, 최솟값 구하기) (0) | 2022.02.11 |
[프로그래머스] 시저 암호 (0) | 2022.02.04 |
[프로그래머스] 소수 찾기 (0) | 2022.02.04 |
[프로그래머스] 문자열 내 p와 y의 개수 (0) | 2022.02.04 |