본문 바로가기

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

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

728x90

SQL 문제 풀이 (2)에 이어서 마지막 문제풀이를 이어나가겠습니다.

 

고양이와 개는 몇 마리 있을까 문제 설명

 

코딩테스트 연습 - 고양이와 개는 몇 마리 있을까

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

programmers.co.kr

-- 코드를 입력하세요
SELECT ANIMAL_TYPE, COUNT(ANIMAL_ID) AS count FROM ANIMAL_INS
GROUP BY ANIMAL_TYPE ORDER BY ANIMAL_TYPE

 

COUNT를 사용하여 동물의 수를 세주고, GROUP BY를 사용하여 개와 고양이를 합쳐준 후에 고양이, 개 순서로 출력될 수 있도록 ORDER BY로 정렬시켜준다.

 

NULL 처리하기 문제 설명

 

코딩테스트 연습 - NULL 처리하기

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

programmers.co.kr

-- 코드를 입력하세요    
SELECT ANIMAL_TYPE, 
CASE WHEN NAME IS NULL THEN 'No name' ELSE NAME END AS NAME, 
SEX_UPON_INTAKE FROM ANIMAL_INS

 

CASE WHEN (조건문) THEN (조건문이 참일 경우) ELSE (조건문이 거짓일 경우) END (끝), 해당 코드를 사용하면 문제를 해결할 수 있다.

 

동명 동물 수 찾기 문제 설명

 

코딩테스트 연습 - 동명 동물 수 찾기

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

programmers.co.kr

-- 코드를 입력하세요
SELECT NAME, COUNT(NAME) FROM ANIMAL_INS 
GROUP BY NAME HAVING COUNT(NAME) > 1 ORDER BY NAME ASC

 

HAVING은 GROUP BY 실행 중에 필요한 조건들을 설정할 수 있다. HAVING을 통해 COUNT 된 NAME의 수가 1보다 크다.라는 조건을 추가해주는 것으로 문제를 해결할 수 있다.

 

루시와 엘라 찾기 문제 설명

 

코딩테스트 연습 - 루시와 엘라 찾기

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

programmers.co.kr

-- 코드를 입력하세요
SELECT ANIMAL_ID, NAME, SEX_UPON_INTAKE FROM ANIMAL_INS 
WHERE (NAME='Lucy' OR NAME='Ella' OR NAME='Pickle' OR NAME='Rogan' OR NAME='Sabrina' OR NAME='Mitty') 
ORDER BY ANIMAL_ID

 

NAME이 Lucy, Ella, Pickle, Rogan, Sabrina, Mitty인 정보들만 선택하여 ANIMAL_ID에 맞게 정렬시켜준다.

 

이름에 el이 들어가는 동물 찾기 문제 설명

 

코딩테스트 연습 - 이름에 el이 들어가는 동물 찾기

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 NAME LIKE '%el%' AND ANIMAL_TYPE = 'Dog' ORDER BY NAME

 

%el%를 통해서 NAME에 el이 들어간 내용이 있다면 검색한다. 검색된 결과 중에 ANIMAL_TYPE이 Dog인 것들만 NAME으로 정렬시켜준다.

 

중성화 여부 파악하기 문제 설명

 

코딩테스트 연습 - 중성화 여부 파악하기

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

programmers.co.kr

-- 코드를 입력하세요
SELECT ANIMAL_ID, NAME, 
CASE SEX_UPON_INTAKE WHEN SEX_UPON_INTAKE LIKE 'Intact%' THEN 'O' ELSE 'X' END AS '중성화'
FROM ANIMAL_INS ORDER BY ANIMAL_ID

 

CASE WHEN 조건으로 SEX_UPON_INTAKE에 Intact가 포함된 내용을 검색하고, 참이라면 O 거짓이라면 X이라고 설정한다. 그리고 검색된 결과를 ANIMAL_ID에 맞게 정렬한다.

 

이렇게 [Problem Solving] SQL 문제 풀이 (1), [Problem Solving] SQL 문제 풀이 (2) 그리고 이번 (3) 번까지로 코딩 테스트 SQL 기본 문제에 대해서 풀어보았다.

728x90