[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] Lv2. ๋™๋ช… ๋™๋ฌผ ์ˆ˜ ์ฐพ๊ธฐ [GROUP BY]

2022. 9. 23. 10:17ใ†์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค_2022

728x90

 

๋ฌธ์ œ ์„ค๋ช…

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๋ฌธ์„ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”. ์ด๋•Œ ๊ฒฐ๊ณผ๋Š” ์ด๋ฆ„์ด ์—†๋Š” ๋™๋ฌผ์€ ์ง‘๊ณ„์—์„œ ์ œ์™ธํ•˜๋ฉฐ, ๊ฒฐ๊ณผ๋Š” ์ด๋ฆ„ ์ˆœ์œผ๋กœ ์กฐํšŒํ•ด์ฃผ์„ธ์š”.

์˜ˆ์‹œ

์˜ˆ๋ฅผ ๋“ค์–ด ANIMAL_INS ํ…Œ์ด๋ธ”์ด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค๋ฉด

ANIMAL_ID         ANIMAL_TYPE       DATETIME                       INTAKE_CONDITION   NAME  SEX_UPON_INTAKE
A396810 Dog 2016-08-22 16:13:00 Injured Raven Spayed Female
A377750 Dog 2017-10-25 17:17:00 Normal Lucy Spayed Female
A355688 Dog 2014-01-26 13:48:00 Normal Shadow Neutered Male
A399421 Dog 2015-08-25 14:08:00 Normal Lucy Spayed Female
A400680 Dog 2017-06-17 13:29:00 Normal Lucy Spayed Female
A410668 Cat 2015-11-19 13:41:00 Normal Raven Spayed Female
  • Raven ์ด๋ฆ„์€ 2๋ฒˆ ์“ฐ์˜€์Šต๋‹ˆ๋‹ค.
  • Lucy ์ด๋ฆ„์€ 3๋ฒˆ ์“ฐ์˜€์Šต๋‹ˆ๋‹ค
  • Shadow ์ด๋ฆ„์€ 1๋ฒˆ ์“ฐ์˜€์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ SQL๋ฌธ์„ ์‹คํ–‰ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋‚˜์™€์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

NAME                                                                                                                              COUNT
Lucy 3
Raven 2

 

๋‚˜์˜ ํ’€์ด [MySQL]

SELECT NAME, COUNT(*) FROM ANIMAL_INS GROUP BY NAME HAVING NAME IS NOT NULL AND COUNT(*) > 1 ORDER BY NAME;

-> ์—ฌ๊ธฐ์„œ ์š”๊ตฌํ•˜๋Š” ๊ฒƒ์€ ๋จผ์ € ๋™๋ฌผ ์ด๋ฆ„ ์ค‘ ๋‘ ๋ฒˆ ์ด์ƒ ์“ฐ์ธ ์ด๋ฆ„๊ณผ ํ•ด๋‹น ์ด๋ฆ„์ด ์“ฐ์ธ ํšŸ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๊ฒƒ์ด๋‹ค. 

์ด๋ฆ„์€ GROUP BY๋ฅผ ํ†ตํ•ด ๊ฐ™์€ ์ด๋ฆ„์„ ๊ตฌ๋ถ„ํ•ด์ฃผ๊ณ , ์ด๋•Œ HAVING์œผ๋กœ NAME์ด NULL์ผ ๊ฒฝ์šฐ์—๋Š” ์ œ์™ธํ•ด์ค€๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋‘๋ฒˆ ์ด์ƒ์ด๋ฏ€๋กœ 1๋ฒˆ์€ ์ œ์™ธํ•ด์ค˜์•ผ ํ•˜๋ฏ€๋กœ ์กฐ๊ฑด์ ˆ์— ์ถ”๊ฐ€ํ•ด์คฌ๋‹ค. 

๋งˆ์ง€๋ง‰์œผ๋กœ ์ด๋ฆ„์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๋ผ ํ–ˆ์œผ๋ฏ€๋กœ ORDER BY๋ฅผ ํ†ตํ•ด ์ด๋ฆ„์œผ๋กœ ์ •๋ ฌํ•ด์ฃผ๋ฉด ์›ํ•˜๋Š” ๊ฐ’์„ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

์ด ๋ฌธ์ œ์—์„œ ํ•ต์‹ฌ์€ ๊ทธ๋ƒฅ GROUP BY๋กœ ์ด๋ฆ„๋ณ„๋กœ ๊ทธ๋ฃน์„ ๋ฌถ์–ด์„œ ์กฐ๊ฑด์„ ๊ตฌํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€ ? ๋ฅผ ๋ฌผ์–ด๋ณด๋Š” ๊ฒƒ ๊ฐ™๋‹ค. 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90