프로그래머스SQL - (ISNULL), (JOIN)
- 이름없는 동물의 아이디 : too easy
SELECT ANIMAL_ID from ANIMAL_INS
WHERE 1=1
AND NAME is null
ORDER BY ANIMAL_ID
- 이름있는 동물의 아이디 : too easy
SELECT ANIMAL_ID from ANIMAL_INS
WHERE 1=1
AND NAME is not null
ORDER BY ANIMAL_ID
- NULL 처리하기 : ★ CASE, THEN, ELSE
문을 까먹고 있었다.
SELECT ANIMAL_TYPE,
CASE
WHEN NAME is null
THEN 'No name'
ELSE NAME
END as NAME,
SEX_UPON_INTAKE
FROM ANIMAL_INS
- 없어진 기록 찾기 : 잠깐 고민했다. 나간 기록은 있는데 들어온 기록은 없다. 그렇다면 나간 기록에 Right Join을 한다. 그렇다면 들어온 기록이 없다면 ANIMAL ID 는 Null 값일 것이다.
SELECT ani_o.ANIMAL_ID, ani_o.NAME
FROM ANIMAL_INS ani_i RIGHT JOIN ANIMAL_OUTS ani_o
on ani_i.ANIMAL_ID = ani_o.ANIMAL_ID
WHERE 1=1
AND ani_i.ANIMAL_ID is null
order by ani_o.ANIMAL_ID asc;
- 있었는데요 없었습니다 : 입양일이 보호시작일보다 빠른 케이스 찾기. 처음 시도로 DateTime -> String -> Int 비교로 하려 했으나 더 쉬운
unix_timestamp
라는 기능을 알게 됐음.
SELECT ani_o.ANIMAL_ID, ani_o.NAME
FROM ANIMAL_INS ani_i INNER JOIN ANIMAL_OUTS ani_o
on ani_i.ANIMAL_ID = ani_o.ANIMAL_ID
WHERE 1=1
AND unix_timestamp(ani_i.DATETIME) > unix_timestamp(ani_o.DATETIME)
order by unix_timestamp(DATE(ani_i.DATETIME)) asc;
- 오랜 기간 보호한 동물 1 : easy
SELECT ani_i.NAME, ani_i.DATETIME
FROM ANIMAL_INS ani_i LEFT JOIN ANIMAL_OUTS ani_o
on ani_i.ANIMAL_ID = ani_o.ANIMAL_ID
WHERE 1=1
AND ani_o.DATETIME is null
order by ani_i.DATETIME asc
limit 3
- 오랜 기간 보호한 동물 2 : `not equal : <>
SELECT ani_o.ANIMAL_ID, ani_o.ANIMAL_TYPE, ani_o.NAME
FROM ANIMAL_INS ani_i RIGHT JOIN ANIMAL_OUTS ani_o
on ani_i.ANIMAL_ID = ani_o.ANIMAL_ID
WHERE 1=1
AND ani_i.DATETIME is not null
AND LEFT(ani_i.SEX_UPON_INTAKE,6) = 'Intact'
AND LEFT(ani_o.SEX_UPON_OUTCOME,6) <> 'Intact'
Author And Source
이 문제에 관하여(프로그래머스SQL - (ISNULL), (JOIN)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@soonwoo2003/프로그래머스SQL-ISNULL-JOIN저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)