이번에 다뤄볼 문제는 문자열 조건을 활용하여 데이터를 조회하는 문제입니다.
앞서 해결했던 어린 동물 찾기와 유사한 문제이기 때문에 빠르게 해결해보겠습니다.
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을 잘 다룰 수 있도록 더욱 노력하도록 하겠습니다. 긴 글 읽어주셔서 감사합니다.