728x90
KDT 실무형 스프링 백엔드 엔지니어 양성과정 6기 | SQL CODEKATA
🐾 이름이 없는 동물의 아이디
🏷 관련 주제 : IS NULL
ORDER BY
문제 설명
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 |
동물 보호소에 들어온 동물 중, 이름이 없는 채로 들어온 동물의 ID를 조회하는 SQL 문을 작성해주세요. 단, ID는 오름차순 정렬되어야 합니다.
예시
예를 들어 ANIMAL_INS
테이블이 다음과 같다면
ANIMAL_ID | ANIMAL_TYPE | DATETIME | INTAKE_CONDITION | NAME | SEX_UPON_INTAKE |
---|---|---|---|---|---|
A368930 | Dog | 2014-06-08 13:20:00 | Normal | NULL | Spayed Female |
A524634 | Dog | 2015-01-02 18:54:00 | Normal | *Belle | Intact Female |
A465637 | Dog | 2017-06-04 08:17:00 | Injured | *Commander | Neutered Male |
이름이 없는 채로 들어온 동물의 ID는 A368930입니다. 따라서 SQL을 실행하면 다음과 같이 출력되어야 합니다.
ANIMAL_ID |
---|
A368930 |
본 문제는 Kaggle의 "Austin Animal Center Shelter Intakes and Outcomes"에서 제공하는 데이터를 사용하였으며 ODbL의 적용을 받습니다.
※ 2019년 9월 4일 13시: 예시가 헷갈린다는 의견이 많아, 본문의 예시를 수정하였습니다.
✔ (Oracle & MySQL) Solution with IS NULL
SELECT ANIMAL_ID
FROM ANIMAL_INS
WHERE NAME IS NULL
ORDER BY ANIMAL_ID ASC;
실행 결과

💥 오늘 만난 문제 & 나의 시도 💦 & 해결 방법 👍
📌 오늘 만난 문제 : 동물 보호소에 들어온 동물 중, 이름이 없는 채로 들어온 동물의 ID
를 조회하는 SQL 문을 작성해주세요. 단, ID
는 오름차순 정렬되어야 합니다.
1. 동물의 이름
, ID
를 조회하자.
SELECT NAME
, ANIMAL_ID
FROM ANIMAL_INS;
실행 결과

2. 동물 이름이 없는 즉, NAME
칼럼의 값이 IS NULL인 인스턴스만 조회하자.
SELECT NAME
, ANIMAL_ID
FROM ANIMAL_INS
WHERE NAME IS NULL;
실행 결과

3. 위의 조회 결과에서 동물의 ID
만 조회하자.
SELECT ANIMAL_ID
FROM ANIMAL_INS
WHERE NAME IS NULL;
실행 결과

4. 위의 조회 결과를 동물의 ID
로 오름차순 정렬하자.
ORDER BY 칼럼명 ASC : 칼럼명으로 오름차순 정렬 (ASC 키워드는 생략 가능)
ORDER BY 칼럼명 DESC : 칼럼명으로 내림차순 정렬
SELECT ANIMAL_ID
FROM ANIMAL_INS
WHERE NAME IS NULL
ORDER BY ANIMAL_ID ASC;
실행 결과

💬 무엇을 새롭게 알았는지
IS NULL
키워드를 사용해 보았다.
ORDER BY절을 이용해 정렬을 해 보았다.
728x90