SQL 테스트 - group by
업데이트:
문제
동물 보호소에 들어온 동물 이름 중 두 번 이상 쓰인 이름과 해당 이름이 쓰인 횟수를 조회하는 SQL문을 작성해주세요. 이때 결과는 이름이 없는 동물은 집계에서 제외하며, 결과는 이름 순으로 조회해주세요.
예제
table name = 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 |
출력
| NAME | COUNT | |——-|——-| | Lucy | 3 | | Raven | 2 |
문제풀이
이번문제는 이전과 똑같이 그룹지어서 카운트하는 문제인데 여기에 조건이 하나 추가되었다. 일반적인 select 문에서 조건은 where
를 사용하는데 그룹지어졌을때는 having
을 사용한다.
정답
SELECT NAME, count(NAME) count from ANIMAL_INS
group by NAME
HAVING count(NAME) > 1
order by NAME
댓글남기기