#17.SELECT 기초 &4 : DISTINCT
이번 포스팅은 SELECT를 사용하였을때 쿼리결과에 중복값을 없애기 위해 사용하는 구문인
DISTINCT에 대하여 알아보겠습니다.
DISTINCT를 잘쓰면 쿼리결과를 좀 더 깔끔하게 표기할 수 있겠죠.
DISTINCT의 사전적 의미를 검색하면...
뚜렷한, 분명한 등으로 검색이 되는데요 그냥 간결하게 중복을 제거 했기 때문에 저런 단어를 썻지 않을까 합니다.
그러면 바로 쿼리를 실행하여 결과를 보도록 하죠.
사용할 계정은 scott입니다.
- SELECT DISTINCT * FROM emp
위 명령어를 쳤을시 아무런 변화가 일어나지 않습니다.
DISTINCT를 제대로 쓸려면 중복값을 배제할 컬럼명을 정확하게 명기하여야 하죠.
즉 14건의 레코드 모두 중복값이 없기때문에 아무련 변화가 없는것 처럼 보입니다.
deptno가 10,20,30으로 겹치는것이 많지만 각각 empno의 번호가 다르고, ename이 다르기때문에 DISTINCT가 안쓰여진것처럼 출력이 됩니다.
그러면 deptno만 DISTINCT를 걸면 어떻게 될까요?
- SELECT DISTINCT deptno FROM emp;
deptno만 걸어서 쿼리 했을시 10,20,30 값이 중복되는것이 있기 때문에
대표값만 둔채로 나머지는 출력이 되지 않습니다.
즉 DISTINCT를 쓸려면 쿼리할 컬럼에 주의를 하여
무슨 컬럼의 중복을 배제할지, 어떤 결과값을 원하는지를 정확하게 파악하여야 합니다.
- SELECT DISTINCT deptno,comm FROM emp;
위 쿼리문을 실행했을시
30번 부서의 커미션에 중복값을 각각 제거하고
20번 부서의 중복값,마지막으로 10번부서의 중복값을 제거합니다.
이처럼 중복값을 제거하고 보고싶을때는 DISTINCT를 잘 활용하면 됩니다.
(깔끔하게 정렬하고 싶다면 ORDER BY 구문을 사용하시는것이 좋습니다)
(Youtube) Secret Poten : http://goo.gl/ENeBOR
(Youtube) Secret Poten AE : http://goo.gl/qasbWH
그외 궁금한점은
공지사항을 잘보시고 오픈채팅으로 물어봐주시면 감사하겠습니다
-HardWare SetUp-
CPU : Intel i7-6700k(OC)
RAM : Samsung DDR4 8GB X 4 (32GB)
HDD : Seagate 1TB X 3 (3TB HDD), Seagate 4TB =Total 7TB
SSD : SanDisk SSD 256GB
VGA : Asus GTX1080 8GB(OC)
MB : Asus Z170-A STCOM
Case : Thermaltake Core X9
PSU : Micronics Performance II HV 850W Bronze
ODD : LG BH16NS55 (Blu-ray ODD)
Other : PSIONIC Custom Water Cooler (CPU set), LED Cooler (EA 8), Scarlett 6i6, MXL990