SQL/MY SQL 문제 풀이(프로그래머스)

[MYSQL] PROGRAMMERS_동명 동물 수 찾기

SQL공부 2024. 2. 21. 13:27
반응형

SELECT NAME, count(NAME) as COUNT
FROM ANIMAL_INS
where 1=1
group by 1
having count >=2
order by 1

ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부

 

문제

동물 보호소에 들어온 동물 이름 중 두 번 이상 쓰인 이름과 해당 이름이 쓰인 횟수를 조회하는 SQL문을 작성. 결과는 이름이 없는 동물은 집계에서 제외하며, 결과는 이름 순으로 조회

 

Select 문에서 NAME을 기준으로 집합하여 그 수를 COUNT 해야하는 문제인데 COUNT 된 값에 대한 조건도 붙여서 풀어야한다. 따라서 NAME을 그룹해서 묶어 줘야해 group by 1 로 Select 문의 첫번째인 NAME을 그룹해 주고 count(NAME)을 해준다.

이때 select 문에서 만들어진 컬럼은 where 절에서 조건 처리가 불가능 하여 having 절을 통해 조건 >=2를 처리해 준후 order by 1로 데이터를 정렬해 처리해 주었다. 

 

 

반응형