[프로그래머스/ORACLE] 중복제거하기
2023. 10. 18. 21:27ㆍSQL/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값을 제외한다.
'SQL > ORACLE' 카테고리의 다른 글
[프로그래머스/ORACLE] 동명 동물 수 찾기(GROUP BY 로 묶은 데이터의 각 개수 구하기) (1) | 2023.10.22 |
---|---|
[프로그래머스 / ORACLE] 상위 n개 레코드 (날짜의 MIN, MAX 값 구하기) (1) | 2023.10.22 |
[프로그래머스 / ORACLE] 오랜 기간 보호한 동물(1) (1) | 2023.10.19 |
[프로그래머스/ORACLE] 12세 이하인 여자 환자 목록 출력하기 (1) | 2023.10.19 |
[프로그래머스/ORACLE] 조건에 맞는 사용자와 총 거래금액 조회하기 (1) | 2023.10.18 |