[프로그래머스] SQL Level1 문제 풀기

nRecode·2021년 2월 26일
0

SQL

목록 보기
1/4

공통 테이블

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

NAMETYPENULLABLE
ANIMAL_IDVARCHAR(N)FALSE
ANIMAL_TYPEVARCHAR(N)FALSE
DATETIMEDATETIMEFALSE
INTAKE_CONDITIONVARCHAR(N)FALSE
NAMEVARCHAR(N)TRUE
SEX_UPON_INTAKEVARCHAR(N)FALSE

역순 정렬하기

프로그래머스 | 역순 정렬하기

동물 보호소에 들어온 모든 동물의 이름과 보호 시작일을 조회하는 SQL문을 작성해주세요. 이때 결과는 ANIMAL_ID 역순으로 보여주세요.

출력 예

NAMEDATETIME
Rocky2016-06-07 09:17:00
Shelly2015-01-29 15:01:00
Benji2016-04-19 13:28:00
Jackie2016-01-03 16:25:00
*Sam2016-03-13 11:17:00

풀이

NAME, DATETIM만 선택조회하고 역순으로 ORDER BY

SELECT NAME, DATETIME FROM ANIMAL_INS ORDER BY ANIMAL_ID DESC;

최댓값 구하기

프로그래머스 | 최댓값 구하기

가장 최근에 들어온 동물은 언제 들어왔는지 조회하는 SQL 문을 작성해주세요.

출력 예
시간|
---|
2013-11-18 17:03:00|
※ 컬럼 이름(위 예제에서는 "시간")은 일치하지 않아도 됩니다.

풀이

DATETIME이 가장 큰 동물의 시간을 선택

SELECT MAX(DATETIME) FROM ANIMAL_INS;

아픈 동물 찾기

프로그래머스 | 아픈 동물 찾기

동물 보호소에 들어온 동물 중 아픈 동물1의 아이디와 이름을 조회하는 SQL 문을 작성해주세요. 이때 결과는 아이디 순으로 조회해주세요.

출력 예

ANIMAL_IDNAME
A367012Miller
A381217Cherokee

풀이

where절을 이용하여 조건을 걸고 ID 오름차순으로 정렬

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

이름이 없는 동물의 아이디

프로그래머스 | 이름이 없는 동물의 아이디

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

출력 예

ANIMAL_ID
A368930

풀이

NAME이 NULL인 것을 조회

SELECT ANIMAL_ID FROM ANIMAL_INS 
WHERE NAME IS NULL;

여러 기준으로 정렬하기

프로그래머스 | 여러 기준으로 정렬하기

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

출력 예

ANIMAL_IDNAMEDATETIME
A350276Jewel2017-08-13 13:50:00
A396810Raven2016-08-22 16:13:00
A410668Raven2015-11-19 13:41:00
A349996Sugar2018-01-22 14:32:00

풀이

NAME은 오름차순으로 DATETIME은 내림차순으로 정렬

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

상위 n개 레코드

프로그래머스 | 상위 n개 레코드

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

출력 예

NAME
Jack

풀이

LIMIT를 이용해 한줄만 조회

SELECT NAME FROM ANIMAL_INS 
ORDER BY DATETIME 
LIMIT 1; 
profile
안정성, 확장성 있는 서버를 구축하고 가꾸는 개발자를 목표로 공부하고 있습니다. 🤔🤔🤔🤔 부족하기에 맞지 않는 내용이 있을 수 있습니다. 가감없이 피드백 해주시면 정말 감사하겠습니다..🙏

0개의 댓글