본문 바로가기
Database

[프로그래머스 SQL - SELECT] 역순 정렬하기

by 진홍이 2021. 6. 7.
728x90

역순 정렬하기

문제 설명

 

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

 

동물 보호소에 들어온 모든 동물의 이름과 보호 시작일을 조회하는 SQL문을 작성해주세요. 이때 결과는 ANIMAL_ID 역순으로 보여주세요. SQL을 실행하면 다음과 같이 출력되어야 합니다.

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_INS테이블을 조회해 보겠습니다.

SELECT * FROM ANIMAL_INS;

전체적으로 테이블을 조회해서 코드를 실행시켜보면

ANIMAL_IDE ANIMAL_TYPE DATETIME INTAKE_CONDITION NAM 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
A352713 Cat 2017-04-13 16:29:00 Normal Gia Spayed Female
A352872 Dog 2015-07-09 17:51:00 Aged Peanutbutter Neutered Male

ANIMAL_INS 테이블을 전체 조회한 결과가 나옵니다.

하지만 문제에서 언급한 중요한 점 중에 하나가 ANIMAL_IDE를 역순으로 정렬시켜야 하는데

현재 코드에는 정렬이 되어있지 않습니다. 

 

ORDER BY 문은 원하는 컬럼을 정리시키는 문법입니다. 

여기에 ORDER BY문을 추가해 ANIMAL_IDE를 역순으로 정렬하도록 하겠습니다.

SELECT 
    * 
FROM 
    ANIMAL_INS
ORDER BY
    ANIMAL_ID DESC;

 

여기서 끝이 아닙니다. 문제에서 원하는건 동물 보호소에 들어온 모든 동물의 이름과 보호 시작일을 뽑아 달라고 했기때문에 SELECT문에 동물의 이름, 보호시작일을 적어주면 원하는 결과를 얻을 수 있습니다.

SELECT 
    NAME,DATETIME
FROM 
    ANIMAL_INS
ORDER BY
    ANIMAL_ID DESC;

 

 

출처:[프로그래머스 코딩테스트 연습] - https://programmers.co.kr/learn/courses/30/lessons/59035

728x90