▶ 1. 아픈 동물 찾기 (Level 1)
문제 설명
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 |
동물 보호소에 들어온 동물 중 아픈 동물1의 아이디와 이름을 조회하는 SQL 문을 작성해주세요.
이때 결과는 아이디 순으로 조회해주세요.
예시
예를 들어 ANIMAL_INS 테이블이 다음과 같다면
| ANIMAL_ID | ANIMAL_TYPE | DATETIME | INTAKE_CONDITION | NAME | SEX_UPON_INTAKE |
| A365172 | Dog | 2014-08-26 12:53:00 | Normal | Diablo | Neutered Male |
| A367012 | Dog | 2015-09-16 09:06:00 | Sick | Miller | Neutered Male |
| A365302 | Dog | 2017-01-08 16:34:00 | Aged | Minnie | Spayed Female |
| A381217 | Dog | 2017-07-08 09:41:00 | Sick | Cherokee | Neutered Male |
이 중 아픈 동물은 Miller와 Cherokee입니다. 따라서 SQL문을 실행하면 다음과 같이 나와야 합니다.
| ANIMAL_ID | NAME |
| A367012 | Miller |
| A381217 | Cherokee |
문제풀이
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE INTAKE_CONDITION = 'Sick'
ORDER BY ANIMAL_ID
SELECT ANIMAL_ID, NAME → 아이디와 이름 조회
WHERE INTAKE_CONDITION = 'Sick' → 아픈 동물만 필터링
ORDER BY ANIMAL_ID → 아이디 순 정렬
실행결과
ANIMAL_ID NAME
A362707 Girly Girl
A367012 Miller
A381217 Cherokee
A387965 Dakota
A388360 Spider
A410330 Chewy
▶ 2. 어린 동물 찾기 (Level 1)
문제 설명
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 |
동물 보호소에 들어온 동물 중 젊은 동물1의 아이디와 이름을 조회하는 SQL 문을 작성해주세요.
이때 결과는 아이디 순으로 조회해주세요.
예시
예를 들어 ANIMAL_INS 테이블이 다음과 같다면
| ANIMAL_ID | ANIMAL_TYPE | DATETIME | INTAKE_CONDITION | NAME | SEX_UPON_INTAKE |
| A365172 | Dog | 2014-08-26 12:53:00 | Normal | Diablo | Neutered Male |
| A367012 | Dog | 2015-09-16 09:06:00 | Sick | Miller | Neutered Male |
| A365302 | Dog | 2017-01-08 16:34:00 | Aged | Minnie | Spayed Female |
| A381217 | Dog | 2017-07-08 09:41:00 | Sick | Cherokee | Neutered Male |
이 중 젊은 동물은 Diablo, Miller, Cherokee입니다. 따라서 SQL문을 실행하면 다음과 같이 나와야 합니다.
| ANIMAL_ID | NAME |
| A365172 | Diablo |
| A367012 | Miller |
| A381217 | Cherokee |
문제풀이
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE INTAKE_CONDITION != 'Aged'
ORDER BY ANIMAL_ID
※ "~가 아닌 것" 표현하는 3가지 방법
WHERE 컬럼명 != '값'
WHERE 컬럼명 <> '값'
WHERE NOT 컬럼명 = '값'
세 가지 모두 같은 결과. 실무에서는 != 또는 <> 를 주로 사용.
실행결과
ANIMAL_ID NAME
A349996 Sugar
A350276 Jewel
A350375 Meo
A352555 Harley
A352713 Gia
A353259 Bj
A354540 Tux
A354597 Ariel
A354725 Kia
A354753 Sammy
A355519 Faith
A355688 Shadow
A355753 Elijah
A357021 Queens
A357444 Puppy
A357846 Happy
A358697 Fuzzo
A358879 Simba
A361391 Baby Bear
A362103 Stitch
A362383 *Morado
A362707 Girly Girl
A362967 Honey
A363653 Goofy
A364429 Hugo
A365172 Diablo
A367012 Miller
A367438 Cookie
A367747 Woody
A368930
A370439 Sniket
A370507 Emily
A370852 Katie
A371000 Greg
A371102 Ceballo
A371344 Sailor
A371534 April
A373219 Ella
A373687 Rosie
A376322 Mama Dog
A376459 Dora
A377750 Lucy
A378348 Frijolito
A378818 Zoe
A378946 Mercedes
A379998 Disciple
A380009 Pickle
A380320 Scooby
A380420 Laika
A380506 Ruby
A381173 Pepper
A381217 Cherokee
A382192 Maxwell 2
A382251 Princess
A383036 Oreo
A383964 Finney
A384360 Jj
A384568 Jedi
A385442 Clyde
A386005 Giovanni
A386276 Tiko
A387083 Goldie
A387965 Dakota
A388360 Spider
A388691 Blaze
A390222 Holly
A391512 Rome
A391858 Nellie
A392027 Penny
A392075 Skips
A392615 Chip
A394547 Snickerdoodl
A395451 Rogan
A396810 Raven
A397882 Charlie
A399421 Lucy
A399552 Jack
A400498 Reggie
A400680 Lucy
A403564 Anna
A405494 Kaila
A406756 Sabrina
A407156 Jake
A408035 Lizzie
A410330 Chewy
A410668 Raven
A410684 Mitty
A412173 Jimminee
A412626 *Sam
A412697 Jackie
A413789 Benji
A414198 Shelly
A414513 Rocky
▶ 3. 상위 n개 레코드 (Level 1)
문제 설명
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_INS 테이블이 다음과 같다면
| ANIMAL_ID | ANIMAL_TYPE | DATETIME | INTAKE_CONDITION | NAME | SEX_UPON_INTAKE |
| A399552 | Dog | 2013-10-14 15:38:00 | Normal | Jack | Neutered Male |
| A379998 | Dog | 2013-10-23 | Normal | Miller Neutered | Intact Male |
| A370852 | Dog | 2013-11-03 15:04:00 | Normal | Minnie Spayed | Spayed Female |
| A403564 | Dog | 2013-11-18 17:03:00 | Normal | Cherokee Neutered | Spayed Female |
이 중 가장 보호소에 먼저 들어온 동물은 Jack입니다. 따라서 SQL문을 실행하면 다음과 같이 나와야 합니다.
| NAME |
| Jack |
※ 보호소에 가장 먼저 들어온 동물은 한 마리인 경우만 테스트 케이스로 주어집니다.
문제풀이
SELECT NAME
FROM ANIMAL_INS
ORDER BY DATETIME
LIMIT 1
LIMIT N → 상위 N개만 가져오기
실행결과
| NAME |
| Jack |
'SQL > SQL 문제풀이' 카테고리의 다른 글
| [SQL 입문] 프로그래머스 SELECT 문제 풀이 (26.04.15) (0) | 2026.04.15 |
|---|---|
| [SQL 입문] 프로그래머스 SELECT 문제 풀이 (26.04.13) (0) | 2026.04.13 |