동명 동물 수 찾기

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다. 동물 보호소에 들어온 동물 이름 중 두 번 이상 쓰인 이름과 해당 이름이 쓰인 횟수를 조회하는 SQL문을 작성해주세요. 이때 결과는 이름이 없는 동물은 집계에서 제외하며, 결과는 이름 순으로 조회해주세요.

동명 동물 수 찾기Lv.2

59041

https://school.programmers.co.kr/learn/courses/30/lessons/59041

해설

ANIMAL_INS 테이블에서 이름이 두 번 이상 나온 동물들의 이름과 해당 횟수를 세어 조회합니다.

  • Name
    SELECT NAME, COUNT(NAME) AS COUNT
    Type
    Description

    ANIMAL_INS 테이블에서 NAME 열을 선택하고, 동일한 이름을 가진 동물들의 갯수를 세어 그 값을 'COUNT'라는 별칭으로 나타냅니다.

  • Name
    FROM ANIMAL_INS
    Type
    Description

    데이터를 조회할 테이블을 지정합니다.

  • Name
    WHERE NAME IS NOT NULL
    Type
    Description

    NULL이 아닌 NAME 값을 가진 동물들만을 대상으로 쿼리를 실행합니다. 이 부분은 이름이 없는 동물은 결과에 포함되지 않도록 필터링합니다.

  • Name
    GROUP BY NAME
    Type
    Description

    NAME 열을 기준으로 결과를 그룹화합니다. 즉, 동일한 이름을 가진 행들이 하나의 그룹으로 묶입니다.

  • Name
    HAVING COUNT(NAME) >= 2
    Type
    Description

    그룹화된 결과 중에서 NAME이 두 번 이상 나온 경우에 해당하는 그룹만 선택합니다. COUNT(NAME)은 그 그룹에 속한 동물의 수를 나타냅니다.

  • Name
    ORDER BY NAME
    Type
    Description

    그룹화된 결과를 이름을 기준으로 정렬합니다. 결과는 이름 순으로 정렬되어 반환됩니다.

동명 동물 수 찾기

SELECT NAME, COUNT(NAME) AS COUNT FROM ANIMAL_INS
WHERE NAME IS NOT NULL GROUP BY NAME HAVING COUNT(NAME) >= 2
ORDER BY NAME;