문제 설명
ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다.
동물 보호소에 들어온 동물 이름 중 두 번 이상 쓰인 이름과 해당 이름이 쓰인 횟수를 조회하는 SQL문을 작성해주세요. 이때 결과는 이름이 없는 동물은 집계에서 제외하며, 결과는 이름 순으로 조회해주세요.
정답
SELECT NAME, COUNT(*) COUNT
FROM ANIMAL_INS
WHERE NAME IS NOT NULL
GROUP BY NAME
HAVING COUNT(*)>=2
ORDER BY NAME
실행 결과
** NAME은 IS NOT NULL을 사용하여 NULL값은 조회하지 않도록 하였음.
** GROUP BY로 NAME별로 집계함 , HAVING으로 카테고리 별 개수가 2개 이상이여야 조회하도록 필터링함
'DB > Programmers SQL 문제 풀이' 카테고리의 다른 글
[programmers] SQL(MySQL) 조건에 부합하는 중고거래 상태 조회하기 (CASE WHEN THEN) (0) | 2024.02.13 |
---|---|
[programmers] SQL(MySQL) 카테고리 별 도서 판매량 집계하기(GROUP BY) (0) | 2024.02.10 |
[programmers] SQL(MySQL) 진료과별 총 예약 횟수 출력하기 (GROUP BY) (0) | 2024.02.09 |
[programmers] SQL(MySQL) 자동차 대여 기록에서 장기/단기 대여 구분하기(DATEDIFF) (0) | 2024.02.02 |
[programmers] SQL(MySQL) 오랜 기간 보호한 동물(2)(JOIN) (1) | 2024.02.02 |