๐ฅDAY +3
https://programmers.co.kr/learn/courses/30/lessons/59411?language=mysql
> ๋ฌธ์ ๋ฅผ ๋ณด๊ณ ์ถ๋ค๋ฉด ๋๋ณด๊ธฐ ํด๋ฆญ!
๋ฌธ์ ์ค๋ช
ANIMAL_INS ํ ์ด๋ธ์ ๋๋ฌผ ๋ณดํธ์์ ๋ค์ด์จ ๋๋ฌผ์ ์ ๋ณด๋ฅผ ๋ด์ ํ ์ด๋ธ์ ๋๋ค. ANIMAL_INS ํ ์ด๋ธ ๊ตฌ์กฐ๋ ๋ค์๊ณผ ๊ฐ์ผ๋ฉฐ, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE๋ ๊ฐ๊ฐ ๋๋ฌผ์ ์์ด๋, ์๋ฌผ ์ข , ๋ณดํธ ์์์ผ, ๋ณดํธ ์์ ์ ์ํ, ์ด๋ฆ, ์ฑ๋ณ ๋ฐ ์ค์ฑํ ์ฌ๋ถ๋ฅผ ๋ํ๋ ๋๋ค.
NAMETYPENULLABLEANIMAL_ID | VARCHAR(N) | FALSE |
ANIMAL_TYPE | VARCHAR(N) | FALSE |
DATETIME | DATETIME | FALSE |
INTAKE_CONDITION | VARCHAR(N) | FALSE |
NAME | VARCHAR(N) | TRUE |
SEX_UPON_INTAKE | VARCHAR(N) | FALSE |
ANIMAL_OUTS ํ ์ด๋ธ์ ๋๋ฌผ ๋ณดํธ์์์ ์ ์ ๋ณด๋ธ ๋๋ฌผ์ ์ ๋ณด๋ฅผ ๋ด์ ํ ์ด๋ธ์ ๋๋ค. ANIMAL_OUTS ํ ์ด๋ธ ๊ตฌ์กฐ๋ ๋ค์๊ณผ ๊ฐ์ผ๋ฉฐ, ANIMAL_ID, ANIMAL_TYPE, DATETIME, NAME, SEX_UPON_OUTCOME๋ ๊ฐ๊ฐ ๋๋ฌผ์ ์์ด๋, ์๋ฌผ ์ข , ์ ์์ผ, ์ด๋ฆ, ์ฑ๋ณ ๋ฐ ์ค์ฑํ ์ฌ๋ถ๋ฅผ ๋ํ๋ ๋๋ค. ANIMAL_OUTS ํ ์ด๋ธ์ ANIMAL_ID๋ ANIMAL_INS์ ANIMAL_ID์ ์ธ๋ ํค์ ๋๋ค.
NAMETYPENULLABLEANIMAL_ID | VARCHAR(N) | FALSE |
ANIMAL_TYPE | VARCHAR(N) | FALSE |
DATETIME | DATETIME | FALSE |
NAME | VARCHAR(N) | TRUE |
SEX_UPON_OUTCOME | VARCHAR(N) | FALSE |
์ ์์ ๊ฐ ๋๋ฌผ ์ค, ๋ณดํธ ๊ธฐ๊ฐ์ด ๊ฐ์ฅ ๊ธธ์๋ ๋๋ฌผ ๋ ๋ง๋ฆฌ์ ์์ด๋์ ์ด๋ฆ์ ์กฐํํ๋ SQL๋ฌธ์ ์์ฑํด์ฃผ์ธ์. ์ด๋ ๊ฒฐ๊ณผ๋ ๋ณดํธ ๊ธฐ๊ฐ์ด ๊ธด ์์ผ๋ก ์กฐํํด์ผ ํฉ๋๋ค.
์์์๋ฅผ ๋ค์ด, ANIMAL_INS ํ ์ด๋ธ๊ณผ ANIMAL_OUTS ํ ์ด๋ธ์ด ๋ค์๊ณผ ๊ฐ๋ค๋ฉด
ANIMAL_INS
ANIMAL_IDANIMAL_TYPEDATETIMEINTAKE_CONDITIONNAMESEX_UPON_INTAKEA354597 | Cat | 2014-05-02 12:16:00 | Normal | Ariel | Spayed Female |
A362707 | Dog | 2016-01-27 12:27:00 | Sick | Girly Girl | Spayed Female |
A370507 | Cat | 2014-10-27 14:43:00 | Normal | Emily | Spayed Female |
A414513 | Dog | 2016-06-07 09:17:00 | Normal | Rocky | Neutered Male |
ANIMAL_OUTS
ANIMAL_IDANIMAL_TYPEDATETIMENAMESEX_UPON_OUTCOMEA354597 | Cat | 2014-06-03 12:30:00 | Ariel | Spayed Female |
A362707 | Dog | 2017-01-10 10:44:00 | Girly Girl | Spayed Female |
A370507 | Cat | 2015-08-15 09:24:00 | Emily | Spayed Female |
SQL๋ฌธ์ ์คํํ๋ฉด ๋ค์๊ณผ ๊ฐ์ด ๋์์ผ ํฉ๋๋ค.
ANIMAL_IDNAMEA362707 | Girly Girl |
A370507 | Emily |
โป ์ ์์ ๊ฐ ๋๋ฌผ์ด 2๋ง๋ฆฌ ์ด์์ธ ๊ฒฝ์ฐ๋ง ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง๋๋ค.
๐ฅ [ํ์ด]
datetime๋ผ๋ฆฌ๋ ์ฐ์ฐ์ด ๊ฐ๋ฅํ๋ค! ์ ๋ ฌ ์์๋ฅผ ๋ ๊ฐ์ ๋บ ์ญ์์ผ๋ก ํด์ ๊ฐ์ฅ ํฐ ๋๊ฐ์ ๊ฐ(๋ณดํธ๋ฅผ ๊ฐ์ฅ ์ค๋ ํ ๋๋ฌผ)๋ง ์ถ๋ ฅ๋ ์ ์๋๋ก limit์ ๊ฑธ์ด์ฃผ๋ฉด ๋๋ค.
๐ฅ [์ต์ข SQL]
SELECT I.ANIMAL_ID, I.NAME FROM ANIMAL_INS AS I
INNER JOIN ANIMAL_OUTS AS O
ON I.ANIMAL_ID = O.ANIMAL_ID
ORDER BY (O.DATETIME - I.DATETIME) DESC
LIMIT 2;
๐ฅ [์๊ฐ]
์ฝํ ์ค๋น๋ฅผ ๋ณธ๊ฒฉ์ ์ผ๋ก ์์ํ์ง ์ผ๋ง ๋์ง ์์ ์ฝ๋์ ๋ฏธํกํ ์ ์ด ๋ง์ ์ ์์ต๋๋ค.
๋ถ์กฑํ ์ ํผ๋๋ฐฑ ์ฃผ์๋ฉด ์์ผ๋ก์ ํฌ์คํ ์ ๋ฐ์ํ๊ฒ ์ต๋๋ค! ๋ด์ฃผ์ ์ ์ ๋ง ๊ฐ์ฌํฉ๋๋ค :)
-zelkova