https://school.programmers.co.kr/learn/courses/30/lessons/59041
[문제]
ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다.
NAME | TYPE | NULLABLE |
ANIMAL_ID | VARCHAR(N) | FALSE |
ANIMAL_TYPE | VARCHAR(N) | FALSE |
DATETIME | DATETIME | FALSE |
INTAKE_CONDITION | VARCHAR(N) | FALSE |
NAME | VARCHAR(N) | TRUE |
SEX_UPON_INTAKE | VARCHAR(N) | FALSE |
동물 보호소에 들어온 동물 이름 중 두 번 이상 쓰인 이름과 해당 이름이 쓰인 횟수를 조회하는 SQL문을 작성해주세요. 이때 결과는 이름이 없는 동물은 집계에서 제외하며, 결과는 이름 순으로 조회해주세요.
[코드]
SELECT NAME, COUNT(NAME) AS COUNT
FROM ANIMAL_INS
GROUP BY NAME
HAVING COUNT(NAME)>=2
ORDER BY NAME;
[고찰]
이번 문제는 동물의 이름과 이름의 등장 횟수를 조회하기 때문에 NAME 컬럼을 GROUP으로 묶어주면 된다. 또한 NAME의 등장 횟수가 2번 이상인 컬럼들만 출력하기 위해서 COUNT(NAME)에 조건을 걸어주어야 한다. 이는 HAVING 절을 사용해야 함을 의미한다. 이 점만 주의하면서 풀어주면 어렵지 않게 해결할 수 있는 문제였다.
'SQL 문제' 카테고리의 다른 글
[프로그래머스 SQL] 가격대 별 상품 개수 구하기 (0) | 2023.09.27 |
---|---|
[프로그래머스 SQL] 입양 시각 구하기(1) (0) | 2023.09.26 |
[프로그래머스 SQL] 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기 (0) | 2023.09.26 |
[프로그래머스 SQL] 진료과별 총 예약 횟수 출력하기 (0) | 2023.09.26 |
[프로그래머스 SQL] 중복 제거하기 (0) | 2023.09.26 |