프로그래머스 SQL
[프로그래머스 2021 Dev-Matching: 웹 백엔드 개발자 상반기 SQL] 헤비 유저가 소유한 장소
https://programmers.co.kr/learn/courses/30/lessons/77487 코딩테스트 연습 - 헤비 유저가 소유한 장소 PLACES 테이블은 공간 임대 서비스에 등록된 공간의 정보를 담은 테이블입니다. PLACES 테이블의 구조는 다음과 같으며 ID, NAME, HOST_ID는 각각 공간의 아이디, 이름, 공간을 소유한 유저의 아이디를 programmers.co.kr 이 서비스에서는 공간을 둘 이상 등록한 사람을 "헤비 유저"라고 부릅니다. 헤비 유저가 등록한 공간의 정보를 아이디 순으로 조회하는 SQL문을 작성해주세요. 서브 쿼리를 통해 places 테이블에서 host_id로 groupBy를 하고 조건으로 1보다 많은 아이디를 찾는다. 이후에 select의 조건으로 in 키워..
[프로그래머스 SQL] 입양 시각 구하기(2) group by, recursive
programmers.co.kr/learn/courses/30/lessons/59413 코딩테스트 연습 - 입양 시각 구하기(2) ANIMAL_OUTS 테이블은 동물 보호소에서 입양 보낸 동물의 정보를 담은 테이블입니다. ANIMAL_OUTS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, NAME, SEX_UPON_OUTCOME는 각각 동물의 아이디, 생물 programmers.co.kr 평범하게 count 후 group by를 하면 데이터가 7~19시까지밖에 출력이 되지 않는다. 하지만 문제에서는 데이터가 없어도 0~23시까지의 데이터를 출력하라는 요청이다. 따라서 WITH RECURSIVE 구문을 통해 0~23까지의 HOUR을 가진 테이블을 만든 후 그 테..
[프로그래머스 SQL] DATETIME에서 DATE로 형 변환 (DATE, DATE_FORMAT)
programmers.co.kr/learn/courses/30/lessons/59414 코딩테스트 연습 - DATETIME에서 DATE로 형 변환 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr 2014-08-08 04:20:00 -> 2018-01-22 꼴로 바꿔서 출력을 해야 한다. SELECT ANIMAL_ID, NAME, DATE_FORMAT(DATETIME, '%Y-%m-%d') AS '날짜' FROM ANIMAL_INS ORD..
[프로그래머스 SQL] 오랜 기간 보호한 동물(2) (date, innerJoin)
programmers.co.kr/learn/courses/30/lessons/59411 코딩테스트 연습 - 오랜 기간 보호한 동물(2) ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr 입양을 보낸 동물 중 보호 기간이 가장 긴 동물 2마리를 출력한다. 입양을 보낸 동물 중 보호 기간을 계산해야 하므로 ANIMAL_INS와 ANIMAL_OUTS를 INNERJOIN 했다. INNERJOIN은 서로 겹치는 정보만 출력해준다(NULL값일 경우 ..
[프로그래머스 SQL] 보호소에서 중성화한 동물(join)
programmers.co.kr/learn/courses/30/lessons/59045 코딩테스트 연습 - 보호소에서 중성화한 동물 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr WHERE조건에서 문자열 검색을 이용해서 풀었다. SELECT A.ANIMAL_ID, A.ANIMAL_TYPE, A.NAME FROM ANIMAL_INS AS A LEFT JOIN ANIMAL_OUTS AS B ON A.ANIMAL_ID = B.ANIMAL_I..
[프로그래머스 SQL] 오랜 기간 보호한 동물(1) (join)
programmers.co.kr/learn/courses/30/lessons/59044 코딩테스트 연습 - 오랜 기간 보호한 동물(1) ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr JOIN을 이용해서 풀었는데 들어왔지만 나가지 않은 동물 중 기간이 오래된 3마리를 출력하는 것이다. INS에 LEFT JOIN OUTS를 해주었고, 나가지 않았다면 OUTS에 정보가 없을 것이므로 OUTS.ANIMAL_ID IS NULL로 제외시켰다. 또..