728x90
JOIN
출제 빈도 높음, 평균 점수 낮음, 문제 세트 4개
MySQL 기준으로 풀이하였습니다.
(1) 없어진 기록 찾기 (Level 3)
SELECT OUTS.ANIMAL_ID, OUTS.NAME
FROM ANIMAL_OUTS OUTS
LEFT JOIN ANIMAL_INS INS ON INS.ANIMAL_ID = OUTS.ANIMAL_ID
WHERE INS.ANIMAL_ID IS NULL
(2) 있었는데요 없었습니다 (Level 3)
SELECT OUTS.ANIMAL_ID, OUTS.NAME
FROM ANIMAL_INS INS
LEFT JOIN ANIMAL_OUTS OUTS ON INS.ANIMAL_ID = OUTS.ANIMAL_ID
WHERE OUTS.DATETIME < INS.DATETIME
ORDER BY INS.DATETIME
(3) 오랜 기간 보호한 동물 (1) (Level 3)
SELECT INS.NAME, INS.DATETIME
FROM ANIMAL_INS INS
LEFT JOIN ANIMAL_OUTS OUTS ON INS.ANIMAL_ID = OUTS.ANIMAL_ID
WHERE OUTS.ANIMAL_ID IS NULL
ORDER BY INS.DATETIME
LIMIT 3
(4) 보호소에서 중성화한 동물 (Level 4)
SELECT INS.ANIMAL_ID, INS.ANIMAL_TYPE, INS.NAME
FROM (
SELECT ANIMAL_ID, ANIMAL_TYPE, NAME, SEX_UPON_INTAKE
FROM ANIMAL_INS
WHERE SEX_UPON_INTAKE IN ('Intact Male', 'Intact Female')
) INS
JOIN (
SELECT ANIMAL_ID, ANIMAL_TYPE, NAME, SEX_UPON_OUTCOME
FROM ANIMAL_OUTS
WHERE SEX_UPON_OUTCOME IN ('Spayed Female', 'Spayed Male', 'Neutered Female', 'Neutered Male')
) OUTS ON INS.ANIMAL_ID = OUTS.ANIMAL_ID
ORDER BY INS.ANIMAL_ID
4번에서 시간이 조금 걸리긴 했습니다만, 여기까지 문제없이 풀이하였습니다.
728x90
'Programing 프로그래밍 > 코딩테스트 문제풀이' 카테고리의 다른 글
Summer/Winter Coding(2019) - 우유와 요거트가 담긴 장바구니 (0) | 2022.01.11 |
---|---|
SQL 고득점 Kit - String, Date (6) (0) | 2022.01.10 |
SQL 고득점 Kit - IS NULL (4) (0) | 2022.01.06 |
SQL 고득점 Kit - GROUP BY (3) (0) | 2022.01.06 |
SQL 고득점 Kit - SUM, MAX, MIN (2) (0) | 2022.01.04 |