본문 바로가기

취업을 준비하며 정리하는 컴퓨터 지식/Problem Solving

[Problem Solving] SQL 문제 풀이 (1)

728x90

모든 문제는 문제 원문 링크를 가지고 있으니 해당 링크를 통해서 사용되는 데이터 테이블의 속성 값과 타입 값을 확인해주기 바랍니다.

 

모든 레코드 조회하기 문제 설명

 

코딩테스트 연습 - 모든 레코드 조회하기

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디

programmers.co.kr

-- 코드를 입력하세요
SELECT * FROM ANIMAL_INS ORDER BY ANIMAL_ID

 

동물 보호소에 있는 모든 동물의 정보를 ANIMAL_ID순으로 출력하는 문제로 ORDER BY를 사용하면 해결 가능하다.

 

최댓값 구하기 문제 설명

 

코딩테스트 연습 - 최댓값 구하기

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디

programmers.co.kr

-- 코드를 입력하세요
SELECT MAX(DATETIME) AS '시간' FROM ANIMAL_INS

 

가장 최근에 동물보호소에 들어온 동물의 입장 시간을 출력하는 문제로 MAX()를 사용하여 해결 가능하다.

 

역순 정렬하기 문제 설명

 

코딩테스트 연습 - 역순 정렬하기

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디

programmers.co.kr

-- 코드를 입력하세요
SELECT NAME, DATETIME FROM ANIMAL_INS ORDER BY ANIMAL_ID DESC

 

NAME, DATETIME을 ANIMAL_ID의 역수로 표현하는 문제로 ORDER BY에 DESC를 사용하여 해결할 수 있다.

 

아픈 동물 찾기 문제 설명

 

코딩테스트 연습 - 아픈 동물 찾기

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디

programmers.co.kr

-- 코드를 입력하세요
SELECT ANIMAL_ID, NAME FROM ANIMAL_INS WHERE INTAKE_CONDITION = 'Sick' ORDER BY ANIMAL_ID

 

ANIMAL_ID와 NAME을 INTAKE_CONDITION이 Sick인 동물만 ANIMAL_ID로 정렬하여 나타내는 문제로 WHERE 조건을 사용하여 데이터를 처리하여 해결하면 된다.

 

우유와 요거트가 담긴 장바구니 문제 설명

 

코딩테스트 연습 - 우유와 요거트가 담긴 장바구니

CART_PRODUCTS 테이블은 장바구니에 담긴 상품 정보를 담은 테이블입니다. CART_PRODUCTS 테이블의 구조는 다음과 같으며, ID, CART_ID, NAME, PRICE는 각각 테이블의 아이디, 장바구니의 아이디, 상품 종류, 가

programmers.co.kr

-- 코드를 입력하세요
SELECT CART_ID FROM CART_PRODUCTS WHERE (NAME='Milk' or NAME='Yogurt') 
	GROUP BY CART_ID HAVING COUNT(DISTINCT NAME) > 1

 

우선 Milk와 Yogurt를 가지고 있는 장바구니를 모두 선택한 후에 CART_ID에 따라 GROUP BY를 실행하는데 이때 HAVING을 사용하여 서로 다른 NAME을 가지고 있는 CART_ID에 한해서만 작업을 진행해주는 것으로 해결 가능하다.

 

어린 동물 찾기 문제 설명

 

코딩테스트 연습 - 어린 동물 찾기

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디

programmers.co.kr

-- 코드를 입력하세요
SELECT ANIMAL_ID, NAME FROM ANIMAL_INS WHERE INTAKE_CONDITION != 'Aged' ORDER BY ANIMAL_ID

 

INTAKE_CONDITION에는 여러 가지 속성이 존재하므로 AGED가 아닌 값들만 선택하여 ANIMAL_ID로 정렬하는 것으로 해결 가능하다.

 

동물의 아이디와 이름 문제 설명

 

코딩테스트 연습 - 동물의 아이디와 이름

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디

programmers.co.kr

-- 코드를 입력하세요
SELECT ANIMAL_ID, NAME from ANIMAL_INS order by ANIMAL_ID

 

별도의 조건 없기 떄문에 ANIMAL_ID, NAME을 ANIMAL_ID 순으로 출력하여 해결할 수 있다.

728x90