본문 바로가기

데이터베이스(DB)

[DB/SQL] 프로그래머스 MySQL 문제 (LEVEL 1) 풀이

반응형

 

 

[문제]

 

 

[풀이]

 

NAME이 NULL인 항을 뽑아내기 위해선 IS NULL을 이용한다. 만약 NULL이 아닌 항만 뽑아내고 싶다면 IS NOT NULL 키워드를 이용할 수 있다. 

ANIMAL_ID 기준으로 오름차순 정렬되어야 하기 때문에 ORDER BY를 사용한다. 

SELECT ANIMAL_ID FROM ANIMAL_INS WHERE NAME is null ORDER BY ANIMAL_ID

 


 

[문제]

 

 

[풀이]

 

날짜를 표현하는 DATETIME 타입은 관계 연산자를 사용하여 비교할 수 있다. 즉, 대소 비교가 가능하므로 최대 최소또한 MAX, MIN 함수로 구할 수 있다. 

열 이름을 '시간'으로 바꾸고 싶다면 AS를 사용한다. 

SELECT MAX(DATETIME) AS '시간' FROM ANIMAL_INS

 


 

[문제]

 

 

[풀이]

 

역순으로 정렬하기 위해선 ORDER BY ~~~ DESC 명령어를 사용하면 된다. 

SELECT NAME, DATETIME FROM ANIMAL_INS ORDER BY ANIMAL_ID DESC

 


 

[문제]

 

 

[풀이]

 

SELECT ANIMAL_ID FROM ANIMAL_INS WHERE NAME is not null ORDER BY ANIMAL_ID

 


 

[문제]

 

 

[풀이]

 

아픈 동물은 INTAKE_CONTITION열의 값이 Sick인 동물이다. 따라서 WHERE절을 이용하여 아픈 동물의 이름과 아이디를 조회한다. 

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

 


 

[문제]

 

 

[풀이]

 

SELECT ANIMAL_ID, NAME FROM ANIMAL_INS ORDER BY ANIMAL_ID

 


[문제]

 

 

[풀이]

 

LIMIT을 이용하면 위에서부터 n개만 출력해줄 수 있다. 

따라서 보호소에 들어온 순서대로 정렬을 한 뒤, LIMIT 1로 1개만 출력하게 되면 가장 먼저 들어온 동물을 조회하게 된다.

SELECT NAME FROM ANIMAL_INS ORDER BY DATETIME LIMIT 1

 


 

[문제]

 

 

[풀이]

 

여러 기준으로 정렬하기 위해서는 ORDER BY 뒤에 콤마(,)로 기준들을 나열한다. 앞에서부터 차례대로 정렬이 수행된다. 

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

 

 

반응형