SQL

[SQL] ๋™๋ช… ๋™๋ฌผ ์ˆ˜ ์ฐพ๊ธฐ (GROUP BY, HAVING)

_๋ณด๋ฆ„ 2021. 2. 26. 19:07

๐Ÿ–ฅ ๋ฌธ์ œ

๋™๋ฌผ ๋ณดํ˜ธ์†Œ์— ๋“ค์–ด์˜จ ๋™๋ฌผ ์ด๋ฆ„ ์ค‘ ๋‘ ๋ฒˆ ์ด์ƒ ์“ฐ์ธ ์ด๋ฆ„๊ณผ ํ•ด๋‹น ์ด๋ฆ„์ด ์“ฐ์ธ ํšŸ์ˆ˜๋ฅผ ์กฐํšŒํ•˜๋Š” SQL๋ฌธ์„ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”. ์ด๋•Œ ๊ฒฐ๊ณผ๋Š” ์ด๋ฆ„์ด ์—†๋Š” ๋™๋ฌผ์€ ์ง‘๊ณ„์—์„œ ์ œ์™ธํ•˜๋ฉฐ, ๊ฒฐ๊ณผ๋Š” ์ด๋ฆ„ ์ˆœ์œผ๋กœ ์กฐํšŒํ•ด์ฃผ์„ธ์š”.

๐Ÿค” ํ’€์ด ๋ฐฉ๋ฒ•

  1. COUNT: ์ด๋ฆ„์ด ์“ฐ์ธ ํšŸ์ˆ˜๋ฅผ ์กฐํšŒํ•œ๋‹ค.
    • AS๋ฅผ ์‚ฌ์šฉํ•˜์—ฌCOUNT(NAME)์„ COUNT๋กœ ์žฌ๋ช…๋ช…ํ•œ๋‹ค.
  2. HAVING: ๋‘ ๋ฒˆ ์ด์ƒ ์“ฐ์ธ ์ด๋ฆ„๋งŒ ์กฐํšŒํ•˜๊ธฐ ์œ„ํ•˜์—ฌ ์กฐ๊ฑด์„ ๊ฑด๋‹ค.
    • AS๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์žฌ๋ช…๋ช…ํ•œ COUNT๊ฐ€ 1๋ณด๋‹ค ํฌ๋‹ค๋Š” ์กฐ๊ฑด์„ ๊ฑธ์–ด ๋‘ ๋ฒˆ ์ด์ƒ ์“ฐ์ธ ์ด๋ฆ„๋งŒ ์กฐํšŒํ•œ๋‹ค.
  3. IS NOT NULL: ์ด๋ฆ„์ด ์—†๋Š” ๋™๋ฌผ์€ ์ง‘๊ณ„์—์„œ ์ œ์™ธํ•œ๋‹ค.
    • ์กฐํšŒ ์กฐ๊ฑด์„ ์œ„ํ•˜์—ฌ WHERE๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
  4. ORDER BY: ๊ฒฐ๊ณผ๋Š” ์ด๋ฆ„ ์ˆœ์œผ๋กœ ์กฐํšŒํ•œ๋‹ค.

๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป SQL

SELECT NAME, COUNT(NAME) AS COUNT
FROM ANIMAL_INS
WHERE NAME IS NOT NULL
GROUP BY NAME
HAVING COUNT > 1
ORDER BY NAME

 

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ๋™๋ช… ๋™๋ฌผ ์ˆ˜ ์ฐพ๊ธฐ

ANIMAL_INS ํ…Œ์ด๋ธ”์€ ๋™๋ฌผ ๋ณดํ˜ธ์†Œ์— ๋“ค์–ด์˜จ ๋™๋ฌผ์˜ ์ •๋ณด๋ฅผ ๋‹ด์€ ํ…Œ์ด๋ธ”์ž…๋‹ˆ๋‹ค. ANIMAL_INS ํ…Œ์ด๋ธ” ๊ตฌ์กฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์œผ๋ฉฐ, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE๋Š” ๊ฐ๊ฐ ๋™๋ฌผ์˜ ์•„์ด๋””

programmers.co.kr