DLife Planet

[쿼리 공부] 입문 4 중복 제거하기(서브쿼리 not null vs distinct vs Exist) 본문

DataScience

[쿼리 공부] 입문 4 중복 제거하기(서브쿼리 not null vs distinct vs Exist)

Western_Gem 2020. 11. 19. 02:47
반응형

SUM, MIN, MAX 개념이 들어가는 입문 편 4강 시작하겠습니다.

 

SELECT count(*) from animal_ins같은 카운트 함수 쿼리는 문제가 간단하므로 생략하겠습니다.


[해설] 

모든 프로그래머스 SQL 문제들은 테이블 명, 테이블 스키마(테이블의 구성), 쿼리 목표, 그리고 예시로 구성이 됩니다.

 

중복을 제거할 때 가장 간단한 SQL distinct (성능 하, 짧은 쿼리)

group by 서브 쿼리 (성능 중간, 긴 쿼리)

백번 설명보다 답지를 직접 보시는게 정확할 듯싶네요.

 

 

단일 테이블에서 exist는 사용법을 모르겠네요. 이 문제에서 exist를 써서 푸는 분이 있다면 댓글로 좀 모시고 싶네요.


[정답]

(Mysql/Oracle) 모범 답안

 SELECT count(name) FROM (SELECT name FROM animal_Ins where name is not null group by name);

 SELECT count (distinct name) FROM animal_ins;

 

확실히, 성능은 전자 쪽이 미세하게 나아 보인다. (전체 테이블을 연산하지 않는다는 가정하에)

 


distinct를 exist가 항상 대체가 가능할까? 나 같은 하수에겐 여전히 난제다...

 

반응형
Comments