본문 바로가기

Database/#Oracle

[DB/Oracle] 프로그래머스 SQL (SELECT -ORDER BY, WHERE)


 

문제 설명

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다.

NAME TYPE NULLABLE
ANIMAL_ID VARCHAR(N) FALSE
ANIMAL_TYPE VARCHAR(N) FALSE
DATETIME DATETIME FALSE
INTAKE_CONDITION VARCHAR(N) FALSE
NAME VARCHAR(N) TRUE
SEX_UPON_INTAKE VARCHAR(N) FALSE

 

Code
모든 레코드 조회하기
SELECT * 
FROM ANIMAL_INS 
ORDER BY ANIMAL_ID ASC; # 오름차순 정렬
역순 정렬하기
SELECT NAME, DATETIME 
FROM ANIMAL_INS 
ORDER BY ANIMAL_ID DESC; # 내림차순 정렬
아픈 동물 찾기
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE INTAKE_CONDITION = 'Sick' # 조건문
ORDER BY ANIMAL_ID ASC;
어린 동물 찾기
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE INTAKE_CONDITION != 'Aged' # 조건문
ORDER BY ANIMAL_ID ASC;
여러 기준으로 정렬하기
SELECT ANIMAL_ID, NAME, DATETIME
FROM ANIMAL_INS
ORDER BY NAME ASC, DATETIME DESC; # 정렬 조건 2개
상위 n개 레코드
SELECT NAME
FROM ( # 서브 쿼리
    SELECT * 
    FROM ANIMAL_INS
    ORDER BY DATETIME ASC
)
WHERE ROWNUM = 1;

 

Results
모든 레코드 조회하기
ANIMAL_ID ANIMAL_TYPE DATETIME INTAKE_CONDITION NAME SEX_UPON_INTAKE
A349996 Cat 2018-01-22 14:32:00 Normal Sugar Neutered Male
A350276 Cat 2017-08-13 13:50:00 Normal Jewel Spayed Female
A350375 Cat 2017-03-06 15:01:00 Normal Meo Neutered Male
A352555 Dog 2014-08-08 04:20:00 Normal Harley Spayed Female
역순 정렬하기
NAME DATETIME
Rocky 2016-06-07 09:17:00
Shelly 2015-01-29 15:01:00
Benji 2016-04-19 13:28:00
Jackie 2016-01-03 16:25:00
*Sam 2016-03-13 11:17:00
아픈 동물 찾기
animal_id name
A362707 Girly Girl
A367012 Miller
A381217 Cherokee
A387965 Dakota
A388360 Spider
A410330 Chewy
어린 동물 찾기
ANIMAL_ID NAME
A365172 Diablo
A367012 Miller
A381217 Cherokee
여러 기준으로 정렬하기
ANIMAL_ID ANIMAL_TYPE DATETIME INTAKE_CONDITION NAME SEX_UPON_INTAKE
A349996 Cat 2018-01-22 14:32:00 Normal Sugar Neutered Male
A350276 Cat 2017-08-13 13:50:00 Normal Jewel Spayed Female
A396810 Dog 2016-08-22 16:13:00 Injured Raven Spayed Female
A410668 Cat 2015-11-19 13:41:00 Normal Raven Spayed Female
상위 n개 레코드
NAME
Jack

 

I'm a Senior Student in Data Science ! 

데이터 사이언스를 공부하고 있는 4학년 학부생의 TIL 블로그입니다. 게시글이 도움 되셨다면 구독과 좋아요 :)