Algorithm/Programmers

SQL - LEVEL 4

눈떠보니 월요일 2021. 8. 24. 16:41

Q1. 보호소에서는 몇 시에 입양이 가장 활발하게 일어나는지 알아보려 합니다. 0시부터 23시까지, 각 시간대별로 입양이 몇 건이나 발생했는지 조회 (이때 결과는 시간대 순으로 정렬)

 

WITH RECURSIVE TIMETABLE(HOUR) AS (
    SELECT 0
    UNION
    SELECT TIMETABLE.HOUR + 1 FROM TIMETABLE WHERE TIMETABLE.HOUR < 23
)

SELECT HOUR, COUNT(A.ANIMAL_ID)
FROM TIMETABLE AS T LEFT JOIN ANIMAL_OUTS AS A ON T.HOUR = HOUR(A.DATETIME)
GROUP BY HOUR
ORDER BY HOUR

 

Q2. 보호소에서 중성화 수술을 거친 동물 정보를 알아보려 한다. 보호소에 들어올 당시에는 중성화되지 않았지만, 보호소를 나갈 당시에는 중성화된 동물의 아이디와 생물 종, 이름을 조회 (아이디 순으로 조회)

 

SELECT INS.ANIMAL_ID, INS.ANIMAL_TYPE, INS.NAME FROM ANIMAL_INS INS JOIN ANIMAL_OUTS OUTS
ON INS.ANIMAL_ID = OUTS.ANIMAL_ID
WHERE INS.SEX_UPON_intake like 'intact%' and 
(OUTS.SEX_UPON_OUTCOME like 'spayed%' or OUTS.SEX_UPON_OUTCOME like 'neutered%')
ORDER BY INS.ANIMAL_ID;

 

Q3. 데이터 분석 팀에서는 우유(Milk)와 요거트(Yogurt)를 동시에 구입한 장바구니가 있는지 알아보려 한다. 우유와 요거트를 동시에 구입한 장바구니의 아이디를 조회 (이때 결과는 장바구니의 아이디 순으로)

 

SELECT CART_ID FROM CART_PRODUCTS
WHERE NAME = "MILK"
AND CART_ID IN (SELECT CART_ID FROM CART_PRODUCTS WHERE NAME="Yogurt")