-
문제: 정답: 문제풀이: lv3부터는 JOIN 문제가 많이 나오는 것 같다. 역시 JOIN 문을 사용하여서 테이블을 합쳐주고 나서 조건문 WHERE을 사용하여 ANIMAL_INS에서 없는 아이디를 입력해주면된다. WHERE B.ANIMAL_INS IS NULL 그럼 ANIMAL_OUTS에는 있지만 ANIMAL_INS에선 없는 데이터들이 조회된다. SQL문은 기초를 많이 익혀야하니 다른 사람의 풀이도 참고해보고 유튜브나 기초강의를 들으시는걸 추천한다.
문제: 정답: 문제 풀이: 이 문제도 생각보다 쉽다. JOIN문을 사용해서 테이블을 합치고 WHERE 조건문을 통해서 ANIMAL_INS 의 DATETIME이 ANIMAL_OUTS의 DATETIME보다 더 큰값을 찾아내면 되는 것이다.
문제: 정답: 문제풀이: 입양을 간 동물 중에 보호기간이 가장 긴 동물을 출력하는 문제이다. ANIMAL_INS 와 ANIMAL_OUTS를 JOIN 해주고, 조건문을 통해서 ANIMAL_ID가 같다는 걸 표현해준다. ANIMAL_INS와 ANIMAL_OUTS의 DATETIME을 빼서 ORDER BY를 통해 기간이 큰 순서대로 나열한다. 그럼 다음과 같은 정답이 나온다.
문제: 정답: 문제풀이: LV .3 부터는 LEFT JOIN을 많이 쓰게 되는 거같다. 공통된 컬럼이 존재하기 때문에 A,B로 나타내 주었고, ANIMAL_INS 와 ANIMAL_OUTS의 테이블에서의 차이를 나타내주기위해 WHERE B.DATETIME IS NULL을 주었다. 프로그래머스 SQL은 다른 언어에 비해 쉽지만, 기본이 잘 안다져있으면 구사하기 힘들기 때문에 기본을 익히자
문제: 정답: 정답풀이: 다음 문제는 ANIMAL_TYPE의 수를 구하는 문제이다. COUNT(컬럼명) 을 넣으면 된다. 또한 GROUP BY 를 지정해준다면 조건에 맞게 컬럼의 수를 셀수 있다. 프로그래머스 LV2 이지만 다른 언어와 비교해봤을때 상당히 간단하다.
문제: 정답: 문제풀이: 문제의 조건에서 가장 먼저 들어온 동물의 DATETIME을 알아보기로 되있다. SELECT와 FROM을 통해 원하는 컬럼을 테이블에서 가져오고 ORDER BY를 활용하여 오름차순으로 정렬한다. 또한 LIMIT 1을 지정하며, 가장 먼저 들어온 동물의 시간 정보만 알게끔 지정해준다.
문제: 정답: 문제풀이: 이 문제도 생각보다 간단했던 거 같다. if문을 사용해서 구절을 나누어 주면 되는 거 같다.
문제: 정답: 문제풀이: for 문과 리스트에 대한 정렬을 사용하였다. 그리고 겹치는 것이 있으면 안되기 때문에 set함수를 사용하였고, 이번에는 add를 사용해보았다. 프로그래머스를 풀면서 느끼는 것은 생각보다 코드를 간단히 구연할 수 있다는 것이다. 그러니까 초보라면 더욱더 기본기에 몰두하자!