본문 바로가기
Database

[프로그래머스 SQL - SELECT] 모든 레코드 조회하기

by 진홍이 2021. 6. 4.
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

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

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

 

여기까지가 문제설명입니다.

차근차근 풀어보겠습니다. 

우선 전체적으로 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문을 추가해 ANIMAL_IDE를 정렬하도록 하겠습니다.

SELECT 
    * 
FROM 
    ANIMAL_INS
ORDER BY
    ANIMAL_ID ASC;

 

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

 

위에 작성한 코드에서 ASC는 생략 가능합니다.

역순으로 정렬 하려면 DESC를 사용 가능합니다.

역순정렬은

SELECT 
    * 
FROM 
    ANIMAL_INS
ORDER BY
    ANIMAL_ID DESC;

 

하지만,

문제에서 원하는 답은 번호순 정렬이기 때문에 ANIMAL_ID를 기준으로 ORDER BY를 사용해 ANIMAL_ID를 정렬하면

원하는 결과가 나올 수 있습니다.

SELECT 
    * 
FROM 
    ANIMAL_INS
ORDER BY
    ANIMAL_ID;

 

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

 

 

728x90