[SQL 입문] 프로그래머스 SELECT 문제 풀이 (26.04.14)

2026. 4. 14. 19:52·SQL/SQL 문제풀이

▶ 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
'SQL/SQL 문제풀이' 카테고리의 다른 글
  • [SQL 입문] 프로그래머스 SELECT 문제 풀이 (26.04.15)
  • [SQL 입문] 프로그래머스 SELECT 문제 풀이 (26.04.13)
폭듀장땡
폭듀장땡
yoon0921 님의 블로그 입니다.
  • 폭듀장땡
    윤
    폭듀장땡
  • 전체
    오늘
    어제
    • 분류 전체보기 (40)
      • Setup (1)
      • AWS (7)
      • Python (1)
      • SQL (6)
        • SQL 문제풀이 (3)
      • Qt (20)
      • Git (2)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
폭듀장땡
[SQL 입문] 프로그래머스 SELECT 문제 풀이 (26.04.14)
상단으로

티스토리툴바