오늘 할 일: 끝내주게 숨쉬기
article thumbnail
[프로그래머스] SQL 고득점 Kit : JOIN

※ 모든 코드는 Oracle을 기준으로 작성되었습니다. 1. 없어진 기록 찾기 문제설명 Solutions 1 2 3 4 5 6 SELECT O.ANIMAL_ID, O.NAME FROM ANIMAL_OUTS O LEFT OUTER JOIN ANIMAL_INS I ON O.ANIMAL_ID = I.ANIMAL_ID WHERE I.ANIMAL_ID IS NULL ORDER BY ANIMAL_ID; cs 코드해석 입양을 간 기록은 있는데 보호소에 들어온 기록이 없다면 입양 간 동물의 정보를 담은 테이블 ANIMAL_OUTS의 모든 값이 일단 조회가 되어야겠죠. 그래서 ANIMAL_ID을 기준으로 LEFT JOIN을 사용하여 조인을 수행하고요, ANIMAL_INS의 ANIMAL_ID가 존재하지 않는다면 NULL로..

article thumbnail
[프로그래머스] SQL 고득점 Kit : GROUP BY

※ 모든 코드는 Oracle을 기준으로 작성되었습니다. 1. 고양이와 개는 몇 마리 있을까 문제 설명 Solution 1 2 3 4 SELECT ANIMAL_TYPE, COUNT(ANIMAL_TYPE) count FROM ANIMAL_INS GROUP BY ANIMAL_TYPE ORDER BY ANIMAL_TYPE; 코드해석 GROUP BY절을 사용하여 동물의 종에 따라 그룹화를 하고, COUNT 함수를 사용하여 동물의 종마다 행의 개수를 집계합니다. 고양이(Cat)가 개(Dog)보다 먼저 조회되어야 하므로 ORDER BY절을 사용해 동물의 종으로 정렬하였습니다. 2. 동명 동물 수 찾기 문제 설명 Solution 1 2 3 4 5 6 SELECT NAME, COUNT(NAME) FROM ANIMAL_I..

article thumbnail
[프로그래머스] SQL 고득점 Kit : SUM, MAX, MIN

※ 모든 코드는 Oracle을 기준으로 작성되었습니다. 1. 최댓값 구하기 문제 설명 Solution 1 2 3 4 5 SELECT DATETIME FROM (SELECT DATETIME FROM ANIMAL_INS ORDER BY DATETIME DESC) WHERE ROWNUM = 1; 코드해석 서브쿼리를 활용하여 보호 시작일을 내림차순 정렬합니다. 날짜를 내림차순 정렬하게 되면 가장 최근 날짜가 맨 위에 위치하게 됩니다. 정렬된 테이블에서 행 번호가 1인 행을 추출합니다. 2. 최솟값 구하기 문제 설명 Solution 1 2 3 4 5 SELECT DATETIME FROM (SELECT DATETIME FROM ANIMAL_INS ORDER BY DATETIME) WHERE ROWNUM = 1; 코..

article thumbnail
[프로그래머스] SQL 고득점 Kit : String, Date

※ 모든 코드는 Oracle을 기준으로 작성되었습니다. 1. 루시와 엘라 찾기 문제 설명 Solution 1 2 3 4 SELECT ANIMAL_ID, NAME, SEX_UPON_INTAKE FROM ANIMAL_INS WHERE NAME IN ('Lucy', 'Ella', 'Pickle', 'Rogan', 'Sabrina', 'Mitty') ORDER BY ANIMAL_ID; 코드해석 WHERE절을 IN을 사용하면 해당 칼럼 내에서 일치하는 값을 갖는 행을 추출할 수 있습니다. > WHERE 칼럼명 IN (값1, 값2, ...) 2. 이름에 el이 들어가는 동물 찾기 문제 설명 Solution 1 2 3 4 5 SELECT ANIMAL_ID, NAME FROM ANIMAL_INS WHERE REGEXP..

article thumbnail
[프로그래머스] SQL 고득점 Kit : IS NULL

※ 모든 코드는 Oracle을 기준으로 작성되었습니다. 1. 이름이 없는 동물의 아이디 문제 설명 Solution 1 2 3 4 SELECT ANIMAL_ID FROM ANIMAL_INS WHERE NAME IS NULL ORDER BY ANIMAL_ID; 코드해석 칼럼 내에 값이 존재하지 않는 상태를 NULL이라고 합니다. 값이 0이거나 공백인 경우와는 다릅니다. 값이 아예 없어 비어있는 것이니 주의하세요. [WHERE (칼럼명) IS NULL]을 사용하면 비어있는 행을 조회할 수 있습니다. 2. 이름이 있 동물의 아이디 문제 설명 Solution 1 2 3 4 SELECT ANIMAL_ID FROM ANIMAL_INS WHERE NAME IS NOT NULL ORDER BY ANIMAL_ID; 코드해..

article thumbnail
[프로그래머스] SQL 고득점 Kit : SELECT

※ 모든 코드는 Oracle을 기준으로 작성되었습니다. 1. 모든 레코드 조회하기 문제 설명 Solution 1 2 3 SELECT * FROM ANIMAL_INS ORDER BY ANIMAL_ID; 코드해석 동물의 정보를 담은 테이블의 모든 레코드를 ANIMAL_ID순으로 조회하는 SQL문입니다. SELECT * 으로 모든 칼럼을 선택하며, ORDER BY ANIMAL_ID로 레코드를 ANIMAL_ID순으로 정렬합니다. 2. 역순 정렬하기 문제 설명 Solutioin 1 2 3 SELECT NAME, DATETIME FROM ANIMAL_INS ORDER BY ANIMAL_ID DESC; 코드해석 동물의 정보를 담은 테이블에서 모든 동물의 이름과 보호 시작일을 조회하되, ANIMAL_ID의 역순으로 출..

반응형