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

2023. 10. 18. 21:27SQL/ORACLE

내 코드

SELECT COUNT(DISTINCT name) from ANIMAL_INS

 

느낀점

회사에서 일을 하면서 느낀점이 내가 그동안 코딩알고리즘문제를 열심히 푼 덕분에 코딩로직에 대한 이해도는 높지만 SQL 공부에는 시간을 조금 들인만큼 많이 부족하구나 하는 생각이 들었다.

이번에도 나는 GROUP BY 를 사용하려고 했지만 DISTINCT를 사용하면 더 간단하고 쉽게 풀 수 있다는 것을 알았다.

DISTINCT 자체를 몰랐었지만 이번 기회에 배우고 넘어갔다.

DISTINCT는 GROUP BY 와 비슷하게 중복을 지우고 출력한다. 하지만 GROUP BY 는 정렬의 기능을 가지고 있고 DISTINCT는 정렬의 기능을 갖고있지않다는 점이 다르다. 덕분에 속도는 DISTINCT가 좀 더 빠르다.

집계함수를 사용하여 출력해야할 경우 GROUP BY를 사용해야한다.

 

COUNT(*) -> NAME이 NULL이어도 COUNT한다.(다른 칼럼이 NULL이 아니기때)

COUNT(NAME) -> NAME이 NULL이면 COUNT하지 않는다.

DISTINCT는 기본적으로 NULL값을 제외한다.