본문 바로가기

Algorithm/Programmers

SQL - LEVEL 3

Q1. 천재지변으로 인해 일부 데이터가 유실되었다. 입양을 간 기록은 있는데, 보호소에 들어온 기록이 없는 동물의 ID와 이름을 ID 순으로 조회하는 SQL문을 작성

 

SELECT A.ANIMAL_ID, A.NAME
FROM ANIMAL_OUTS A LEFT JOIN ANIMAL_INS B
ON A.ANIMAL_ID = B.ANIMAL_ID
WHERE B.DATETIME IS NULL

 

Q2. 관리자의 실수로 일부 동물의 입양일이 잘못 입력되었다. 보호 시작일보다 입양일이 더 빠른 동물의 아이디와 이름을 조회 (이때 결과는 보호 시작일이 빠른 순으로 조회)

 

SELECT AI.ANIMAL_ID, AI.NAME FROM ANIMAL_INS AI JOIN ANIMAL_OUTS AO
ON AI.ANIMAL_ID = AO.ANIMAL_ID
WHERE AI.DATETIME > AO.DATETIME
ORDER BY AI.DATETIME;

 

 

Q3. 아직 입양을 못 간 동물 중, 가장 오래 보호소에 있었던 동물 3마리의 이름과 보호 시작일을 조회 (이때 결과는 보호 시작일 순으로 조회)

 

SELECT AI.NAME, AI.DATETIME FROM ANIMAL_INS AI LEFT JOIN ANIMAL_OUTS AO
ON AI.ANIMAL_ID = AO.ANIMAL_ID
WHERE AO.ANIMAL_ID IS NULL
ORDER BY AI.DATETIME
LIMIT 3;

 

 

Q4. 입양을 간 동물 중, 보호 기간이 가장 길었던 동물 두 마리의 아이디와 이름을 조회 (이때 결과는 보호 기간이 긴 순으로 조회)

 

SELECT OUTS.ANIMAL_ID, OUTS.NAME FROM ANIMAL_INS INS LEFT OUTER JOIN ANIMAL_OUTS OUTS
USING (ANIMAL_ID)
ORDER BY DATEDIFF(OUTS.DATETIME, INS.DATETIME) DESC
LIMIT 2;

 

Q5. 이 서비스에서는 공간을 둘 이상 등록한 사람을 "헤비 유저"라고 부른다. 헤비 유저가 등록한 공간의 정보를 아이디 순으로 조회

 

SELECT ID, NAME, HOST_ID FROM PLACES
WHERE
    HOST_ID IN (SELECT HOST_ID FROM PLACES
    GROUP BY HOST_ID
    HAVING COUNT(HOST_ID) >= 2)
ORDER BY ID ASC;

 

'Algorithm > Programmers' 카테고리의 다른 글

Python - 완전탐색  (0) 2021.08.26
Python - 정렬  (0) 2021.08.24
SQL - LEVEL 4  (0) 2021.08.24
SQL - LEVEL 2  (0) 2021.08.24
SQL - LEVEL 1  (0) 2021.08.24