2022. 9. 22. 15:14ใ์ฝ๋ฉํ ์คํธ ์ฐ์ต/ํ๋ก๊ทธ๋๋จธ์ค_2022
๋ฌธ์ ์ค๋ช
ANIMAL_INS ํ ์ด๋ธ์ ๋๋ฌผ ๋ณดํธ์์ ๋ค์ด์จ ๋๋ฌผ์ ์ ๋ณด๋ฅผ ๋ด์ ํ ์ด๋ธ์ ๋๋ค. ANIMAL_INS ํ ์ด๋ธ ๊ตฌ์กฐ๋ ๋ค์๊ณผ ๊ฐ์ผ๋ฉฐ, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE๋ ๊ฐ๊ฐ ๋๋ฌผ์ ์์ด๋, ์๋ฌผ ์ข , ๋ณดํธ ์์์ผ, ๋ณดํธ ์์ ์ ์ํ, ์ด๋ฆ, ์ฑ๋ณ ๋ฐ ์ค์ฑํ ์ฌ๋ถ๋ฅผ ๋ํ๋ ๋๋ค.
NAME TYPE NULLABLE
ANIMAL_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 |
๋๋ฌผ ๋ณดํธ์์ ๋ค์ด์จ ๋๋ฌผ์ ์ด๋ฆ์ ๋ช ๊ฐ์ธ์ง ์กฐํํ๋ SQL ๋ฌธ์ ์์ฑํด์ฃผ์ธ์. ์ด๋ ์ด๋ฆ์ด NULL์ธ ๊ฒฝ์ฐ๋ ์ง๊ณํ์ง ์์ผ๋ฉฐ ์ค๋ณต๋๋ ์ด๋ฆ์ ํ๋๋ก ์นฉ๋๋ค.
์์
์๋ฅผ ๋ค์ด ANIMAL_INS ํ ์ด๋ธ์ด ๋ค์๊ณผ ๊ฐ๋ค๋ฉด
ANIMAL_ID ANIMAL_TYPE DATETIME INTAKE_CONDITION NAME SEX_UPON_INTAKEA562649 | Dog | 2014-03-20 18:06:00 | Sick | NULL | Spayed Female |
A412626 | Dog | 2016-03-13 11:17:00 | Normal | *Sam | Neutered Male |
A563492 | Dog | 2014-10-24 14:45:00 | Normal | *Sam | Neutered Male |
A513956 | Dog | 2017-06-14 11:54:00 | Normal | *Sweetie | Spayed Female |
๋ณดํธ์์ ๋ค์ด์จ ๋๋ฌผ์ ์ด๋ฆ์ NULL(์์), *Sam, *Sam, *Sweetie์ ๋๋ค. ์ด ์ค NULL๊ณผ ์ค๋ณต๋๋ ์ด๋ฆ์ ๊ณ ๋ คํ๋ฉด, ๋ณดํธ์์ ๋ค์ด์จ ๋๋ฌผ ์ด๋ฆ์ ์๋ 2์ ๋๋ค. ๋ฐ๋ผ์ SQL๋ฌธ์ ์คํํ๋ฉด ๋ค์๊ณผ ๊ฐ์ด ๋์์ผ ํฉ๋๋ค.
count
2 |
โป ์ปฌ๋ผ ์ด๋ฆ(์ ์์ ์์๋ count)์ ์ผ์นํ์ง ์์๋ ๋ฉ๋๋ค.
๋์ ํ์ด [MySQL]
SELECT COUNT(DISTINCT NAME) FROM ANIMAL_INS WHERE NAME IS NOT NULL;
-> ๋ฌธ์ ๊ฐ ์๊ตฌํ๋ ๊ฒ์ ๋จผ์ ๋๋ฌผ ๋ณดํธ์์ ๋ค์ด์จ ๋๋ฌผ์ ์ด๋ฆ์ ๊ฐ์๋ฅผ ๊ตฌํ๋ ๊ฒ์ธ๋ฐ ์ด๋ NULL ๊ฐ์ ์ ์ธํ๊ณ , ์ค๋ณต๋ ์ ์ธํด์ผ ํ๋ค.
๊ทธ๋ฌ๋ฉด ์ฐ์ WHERE NAME IS NOT NULL์ ํตํด์ NULL ๊ฐ์ COUNTํ์ง ์๋๋ก ์กฐ๊ฑด์ ์ถ๊ฐํด์ค๋ค.
๊ทธ๋ฆฌ๊ณ DISTINCT๋ฅผ ํตํด ์ด๋ฆ์ ์ค๋ณต์ ์ ๊ฑฐํด์ค ๋ค์์ COUNT ํด์ฃผ๋ฉด ์ํ๋ ๊ฐ์ ์ป์ ์ ์๋ค.
COUNT์์ DISTINCT๋ฅผ ๊ฐ์ด ์ฌ์ฉํด๋ ๋๋ ค๋ ? ์ถ์๋๋ฐ ๊ทธ๋ ๊ฒ ํ๋๋ณด๋น,,