본문 바로가기

programmers

프로그래머스 [SUM, MAX, MIN / 중복 제거하기](MySQL) -yes6686- 티스토리

728x90
SMALL

프로그래머스 SQL 문제: 보호소에 들어온 동물의 이름 개수 조회하기


문제 설명:

ANIMAL_INS 테이블에서 보호소에 들어온 동물들의 서로 다른 이름의 개수를 조회하는 SQL 쿼리를 작성하세요.


문제 해결 SQL


SELECT COUNT(DISTINCT NAME) AS 이름_개수
FROM ANIMAL_INS;

코드 설명

  • 중복 제거: COUNT(DISTINCT NAME)을 사용하여 중복된 이름을 제외하고 개수를 계산.
  • NULL 값 제외: DISTINCT는 자동으로 NULL 값을 제외하므로, 이름이 없는 경우는 계산되지 않음.
  • 컬럼명 변경: AS 이름_개수를 사용하여 출력 컬럼명을 이름_개수로 지정.

실행 결과 예시

이름_개수
53

위와 같은 결과가 나오며, 보호소에 들어온 동물들 중 서로 다른 이름의 개수가 53개라고 가정한 경우입니다.


고려할 점 및 추가적인 접근

  • NULL 값 포함 여부: 만약 NULL 값도 포함하여 계산하려면 COALESCE(NAME, 'Unknown')을 사용할 수도 있음.
  • 이름별 개수 조회: 각 이름별로 몇 마리의 동물이 있는지 알고 싶다면 GROUP BY NAME을 활용할 수 있음:
    
    SELECT NAME, COUNT(*) AS 개수
    FROM ANIMAL_INS
    GROUP BY NAME
    ORDER BY 개수 DESC;
            
728x90
LIST