[프로그래머스] 중복 제거하기

1. 중복 제거하기

A. 문제

위 프로그래머스 사이트에 접속하여 문제를 확인해주세요.

B. 내 답안


SELECT COUNT(DISTINCT(NAME))
FROM ANIMAL_INS
WHERE name IS NOT NULL;


SELECT COUNT(NAME)
FROM(
    SELECT NAME
    FROM ANIMAL_INS
    GROUP BY NAME
);

a. 회고

내 풀이

  • group by를 사용하여 풀었다.
  • 조금 찾아보고 몇번 해보니 COUNT 안에 DISTINCT가 가능하단걸 알게되었다.

반성

  • 이 파트는 group by가 아닌데, 의도와는 다르게 푼거 같다.
  • NULL 집계와 관련하여, DISTINCT 키워드가 어떤 역할을 하는 것 같은데, 잘 모르겠다. 찾아봐야겠다.
    • 아무리 봐도 DISTINCT 키워드가 NULL과 관련된 어떤 일을 하는지 모르겠다. 그냥 WHERE 에 조건으로 추가하자.

C. 문제 해설

이해한 내용을 바탕으로 작성했습니다.

단순하게, 중복을 제거하고 숫자를 세면 된다.

group by를 사용하는 경우, FROM에서 따로 group by를 한 결과를 가져와서 처리해야지 중복이 제거된 전체 name의 개수를 파악할 수 있다.

참고문헌

SELECT. 코딩테스트 연습 - 모든 레코드 조회하기 | 프로그래머스 (programmers.co.kr). Programmers. (accessed Sep 14, 2021)

이 글이 도움이 되었나요?

신고하기
0분 전
작성된 댓글이 없습니다. 첫 댓글을 달아보세요!
    댓글을 작성하려면 로그인이 필요합니다.