본문 바로가기

My Work/Data Literacy

프로그래머스 연습문제 풀이

어린 동물 찾기

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다.

 

 

 

동물 보호소에 들어온 동물 중 젊은 동물(INTAKE_CONDITION이 Aged가 아닌 경우를 뜻함)의 아이디와 이름을 조회하는 SQL 문을 작성해주세요. 이때 결과는 아이디 순으로 조회해주세요.

 

정답

SELECT ANIMAL_ID, NAME FROM ANIMAL_INS
WHERE INTAKE_CONDITION != "Aged"
ORDER BY ANIMAL_ID;

 

ANIMAL_INS 테이블에서 아이디, 이름을 조회 : SELECT ANIMAL_ID, NAME FROM ANIMAL_INS

젋은 동물을 제외 → 조건문 활용 : WHERE INTAKE_CONDITIONS != "Aged"

아이디 순으로 조회 → ORDER BY 사용 및 오름차순이니 ASC 작성 생략 : ORDER BY ANIMAL_ID

 


 

여러 기준으로 정렬하기

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다.

 

 

 

동물 보호소에 들어온 모든 동물의 아이디와 이름, 보호 시작일을 이름 순으로 조회하는 SQL문을 작성해주세요. 단, 이름이 같은 동물 중에서는 보호를 나중에 시작한 동물을 먼저 보여줘야 합니다.

 

정답

SELECT ANIMAL_ID, NAME, DATETIME FROM ANIMAL_INS
ORDER BY NAME, DATETIME DESC;​

 

ANIMAL_INS 테이블에서 모든 동물의 아이디와 이름, 보호 시작일을 조회 : SELECT ANIMAL_ID, NAME, DATETIME FROM ANIMAL_INS

이름이 같은 동물 중에서는 보호를 나중에 시작한 동물 → 이름으로 정렬하되, 보호 시작일은 내림차순으로 정렬 : ORDER BY NAME, DATETIME DESC;

 

 

 


 

 

상위 n개 레코드

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다.

 

 

동물 보호소에 가장 먼저 들어온 동물의 이름을 조회하는 SQL 문을 작성해주세요.

정답

SELECT NAME FROM ANIMAL_INS ORDER BY DATETIME LIMIT 1;

 

ANIMAL_INS 테이블에서 동물의 이름을 조회 : SELECT NAME FROM ANIMAL_INS

가장 먼저 들어온 동물을 구하기 위해서는 DATETIME으로 오름차순 정렬 후, '가장 먼저'이니 최상위 1개만 조회(LIMIT) :

ORDER BY DATETIME LIMIT 1;

 

 

 


 

이름이 있는 동물의 아이디

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다.

 

 

동물 보호소에 들어온 동물 중, 이름이 있는 동물의 ID를 조회하는 SQL 문을 작성해주세요. 단, ID는 오름차순 정렬되어야 합니다.

 

SELECT ANIMAL_ID FROM ANIMAL_INS WHERE NAME != 'NULL';
SELECT ANIMAL_ID FROM ANIMAL_INS WHERE NAME IS NOT NULL;

 

ANIMAL_INS 테이블에서 동물의 ID를 조회 : SELECT ANIMAL_ID FROM ANIMAL_INS

이름이 있는 동물(=이름이 NULL값이 아닌)만 → 조건문 사용 : WHERE NAME IS NOT NULL / WHERE NAME != 'NULL'  

 * 단, NULL이라는 이름을 가진 동물이 있을 수 있으니 전자 사용을 권장함