반응형
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로 데이터를 정렬해 처리해 주었다.
반응형
'SQL > MY SQL 문제 풀이(프로그래머스)' 카테고리의 다른 글
[MYSQL] PROGRAMMERS_NULL 처리하기 (0) | 2024.02.21 |
---|---|
[MYSQL] PROGRAMMERS_이름에 el이 들어가는 동물 찾기 (0) | 2024.02.21 |
[MYSQL] PROGRAMMERS_중복 제거하기 (0) | 2024.02.21 |
[MYSQL] PROGRAMMERS_동물 수 구하기 (0) | 2024.02.21 |
[MYSQL] PROGRAMMERS_조건에 부합하는 중고거래 댓글 조회하기 (0) | 2024.02.21 |