프로그래머스 SQL Lv 1 - 아픈 동물 찾기

정새·2023년 11월 8일
0

이번에 다뤄볼 문제는 문자열 조건을 활용하여 데이터를 조회하는 문제입니다.
앞서 해결했던 어린 동물 찾기와 유사한 문제이기 때문에 빠르게 해결해보겠습니다.
https://school.programmers.co.kr/learn/courses/30/lessons/59036
프로그래머스 기준 Lv.1 문제이며, 풀이 후 해설과 함께 정리해보도록 하겠습니다.


문제에서 주어진 요구사항은 다음 3가지입니다.

1. 전체 테이블에서 '아픈 동물' 여부를 통해 데이터를 나누어야 함
2. 이 때, '아픈 동물'이란 INTAKE_CONDITION이 'Sick' 인 경우를 뜻함
3. 위 조건에 대해 동물의 '아이디', '이름'을 반환하고, 이를 '아이디'기준으로 정렬해서 조회해주어야 함

위 조건을 기반으로 우리는 조건을 만족하는 답변을 내놓기 위한 함수를 떠올려야 합니다.

이번 문제를 해결하기 위해선 하나의 문자열에 대한 조건 설정 방법이 필요합니다.

문제 해결을 위해 필요한 SQL문에 대해 조금 더 정리해보겠습니다.

1. SELECT 문을 통해 조회하고자 하는 컬럼에 대한 정리 필요 (아이디, 이름)
2. 먼저 '아픈 동물' 여부에 대한 조건을 설정할 수 있는 SQL문이 필요
3. 마지막으로 동물의 '아이디' 순서로 결과를 정렬해서 조회할 수 있는 SQL문이 필요

필요한 함수는 모두 정의되었으니, 이를 순서에 맞게 조합하여 SQL문을 작성해보겠습니다.


가장 먼저 SELECT~FROM 사이를 비워둔 상태로 조회하고자 하는 테이블에 대해 작성합니다.

SELECT '비워두기' FROM ANIMAL_INS;

다음으로 실제 조회하여 확인하고자 하는 대상 컬럼을 SELECT 다음 작성해주겠습니다.

조회가 필요한 컬럼은 아이디(ANIMAL_ID) 그리고 이름(NAME)입니다.

SELECT ANIMAL_ID, NAME FROM ANIMAL_INS;

이후 조건을 설정해줄 수 있는 WHERE 문을 설정해주어야 합니다.

WHERE 조건문엔 '아픈 동물'에 대한 데이터만을 조회할 수 있는 조건문이 들어가야합니다.

Sick에 대한 조건을 설정해야하며, = 를 통해 부합하는 데이터만을 조회할 수 있습니다.

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

마지막으로 아이디를 기준으로 조회하기 위해 아이디에 대한 정렬 조건을 작성합니다.

ORDER BY를 활용하여 정렬 조건을 작성하고, 오름차순 형태로 정리해줍니다.

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

이렇게 문제에서 요구되는 SQL문에 대한 작성을 완료할 수 있었습니다.


문제를 풀고 정리하며, 실제 SQL에 대한 이해가 늘어가는 것을 느낄 수 있었습니다.

SQL을 잘 다룰 수 있도록 더욱 노력하도록 하겠습니다. 긴 글 읽어주셔서 감사합니다.

profile
intersection for analysis, modeling, science ... working on it !

0개의 댓글

관련 채용 정보