[ SQL ] 아픈 동물 찾기

2026. 6. 24. 11:37·TIL/코테
[Programmers/SQL] 아픈 동물 찾기 풀이 정리
문제 링크: Programmers - 아픈 동물 찾기

 

WHERE 조건문으로 특정 상태의 데이터를 필터링하고, ORDER BY로 결과 순서를 보장하는 기본 조회 문제다.
이번 문제의 핵심은 동물 보호소 데이터에서 INTAKE_CONDITION 값이 'Sick'인 동물만 조회하는 것이다. 조건 필터링 자체는 단순하지만, 문제에서 요구한 정렬 기준까지 반영해야 완성된 풀이가 된다.
SELECT FROM WHERE ORDER BY 조건 필터링 오름차순 정렬

1. 문제 핵심

동물 보호소에 들어온 동물의 정보를 담은 ANIMAL_INS 테이블에서 아픈 동물의 ANIMAL_ID와 NAME을 조회하는 문제다.

이 문제에서 아픈 동물은 INTAKE_CONDITION 컬럼 값이 'Sick'인 경우를 의미한다.

조회 컬럼: ANIMAL_ID, NAME
조건: INTAKE_CONDITION = 'Sick'
정렬: ANIMAL_ID 기준 오름차순
SQL 코딩테스트에서 “아이디 순”, “이름 순”, “날짜 순”처럼 정렬 조건이 제시되면 ORDER BY를 반드시 작성해야 한다.

2. 처음 제출한 코드

SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE INTAKE_CONDITION = 'Sick'

조건 필터링은 정확하다. WHERE INTAKE_CONDITION = 'Sick'를 통해 아픈 동물만 조회할 수 있다.

다만 문제에서 결과를 아이디 순으로 조회하라고 했기 때문에, 엄밀하게는 ORDER BY ANIMAL_ID가 포함되어야 한다.

3. 최종 정답 SQL

SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE INTAKE_CONDITION = 'Sick'
ORDER BY ANIMAL_ID;

ORDER BY ANIMAL_ID를 추가하면 조회 결과가 동물 아이디 기준 오름차순으로 정렬된다. ASC는 오름차순을 의미하며, 기본값이므로 생략할 수 있다.

ORDER BY ANIMAL_ID;
ORDER BY ANIMAL_ID ASC;

위 두 문장은 같은 의미다.

4. SQL 문법 해석

SELECT

SELECT는 조회할 컬럼을 지정하는 문법이다. 이번 문제에서는 동물의 아이디와 이름만 필요하므로 두 컬럼만 선택한다.

SELECT ANIMAL_ID, NAME

FROM

FROM은 데이터를 가져올 테이블을 지정한다. 이 문제에서는 동물 보호소 입소 정보를 담고 있는 ANIMAL_INS 테이블을 사용한다.

FROM ANIMAL_INS

WHERE

WHERE는 조건에 맞는 행만 필터링할 때 사용한다. 문자열 값을 비교할 때는 작은따옴표로 감싸야 한다.

WHERE INTAKE_CONDITION = 'Sick'

ORDER BY

ORDER BY는 조회 결과의 정렬 기준을 지정하는 문법이다. SQL에서는 ORDER BY를 작성하지 않으면 출력 순서가 보장되지 않는다.

ORDER BY ANIMAL_ID;
조건이 맞아도 정렬 조건을 빠뜨리면 문제 요구사항을 완전히 반영한 풀이가 아니다. 문제 문장에서 “~순으로 조회”라는 표현을 반드시 확인해야 한다.

5. 유사 유형 풀이

같은 핵심 문법을 사용해 상품 테이블에서 판매 가능한 상품만 조회하는 유사 문제를 풀었다.

PRODUCTS 테이블에서 STATUS가 'Available'인 상품의 PRODUCT_ID, PRODUCT_NAME을 조회한다. 결과는 PRODUCT_ID 기준 오름차순으로 정렬한다.
SELECT PRODUCT_ID, PRODUCT_NAME
FROM PRODUCTS
WHERE STATUS = 'Available'
ORDER BY PRODUCT_ID;

원래 문제와 같은 점

두 문제 모두 특정 컬럼 값이 주어진 조건과 일치하는 행만 조회한다. 또한 결과 순서를 보장하기 위해 ORDER BY를 사용한다.

원래 문제: INTAKE_CONDITION = 'Sick'
유사 문제: STATUS = 'Available'

핵심 구조: WHERE 조건 필터링 + ORDER BY 정렬

6. 핵심 정리

이번 유형은 SQL의 가장 기본적인 조회 구조인 SELECT, FROM, WHERE, ORDER BY를 사용하는 문제다.

WHERE는 조건에 맞는 행만 선택할 때 사용한다. 문자열 조건을 비교할 때는 'Sick', 'Available'처럼 작은따옴표를 사용한다.

ORDER BY는 결과를 특정 기준으로 정렬할 때 사용한다. 문제에서 정렬 기준을 요구하면, 조건 필터링이 맞더라도 정렬문까지 작성해야 한다.

7. 사용한 핵심 문법 정리

SELECT
조회할 컬럼을 지정한다. 필요한 컬럼만 선택해서 출력할 수 있다.
FROM
데이터를 가져올 테이블을 지정한다.
WHERE
조건에 맞는 행만 필터링한다. 문자열 조건은 작은따옴표로 감싼다.
ORDER BY
조회 결과의 정렬 기준을 지정한다. 기본 정렬 방향은 오름차순이다.

8. 기본 SQL 구조

SELECT 조회할_컬럼
FROM 테이블명
WHERE 조건
ORDER BY 정렬할_컬럼;
정리하면, 이번 문제는 조건에 맞는 데이터를 찾고 정렬 기준에 맞게 출력하는 기본 조회 문제다. 앞으로 SQL 문제를 풀 때는 조건뿐만 아니라 출력 컬럼, 정렬 기준, 정렬 방향까지 함께 확인하는 습관이 필요하다.

'TIL > 코테' 카테고리의 다른 글

[ SQL ] 상위 n개 레코드  (0) 2026.06.25
[ Python ] 시저 암호  (0) 2026.06.25
[ Python ] 최소직사각형  (0) 2026.06.24
[ Python ] 크기가 작은 부분문자열  (0) 2026.06.23
[ Python ] 삼총사  (0) 2026.06.19
'TIL/코테' 카테고리의 다른 글
  • [ SQL ] 상위 n개 레코드
  • [ Python ] 시저 암호
  • [ Python ] 최소직사각형
  • [ Python ] 크기가 작은 부분문자열
yustitix
yustitix
Semiconductor Process & Quality Data Analyst Candidate, M.S. in Polymer Engineering, @Yustitix </br> Aspiring Semiconductor Process & Quality Data Analyst, aiming to grow into a Manufacturing AI Data Scientist.
  • yustitix
    데분하다
    yustitix
  • 전체
    오늘
    어제
    • 분류 전체보기 (52)
      • Portfolio (4)
      • Job search (9)
        • JD (3)
        • Article study (5)
        • News room (1)
      • TIL (35)
        • TIL (2)
        • 코테 (11)
        • Python (6)
        • 머신러닝 (6)
        • 기초 통계 (3)
        • 반도체 공정 입문 (7)
      • Project (4)
        • FAERS 이상사례 자가보고 데이터 기반 모니터링.. (4)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
yustitix
[ SQL ] 아픈 동물 찾기
상단으로

티스토리툴바