오라클 SQL교육, Distinct를 Exists로, Distinct란?, SQL TIP, 오라클학원/자바학원/SQL학원교육/오라클교육
http://ojc.asia/bbs/board.php?bo_table=LecOrccleTun&wr_id=160
ojc.asia

SQL TIP
https://www.youtube.com/watch?v=RsswtJnUFP0&list=PLxU-iZCqT52DFRbLFQIgGUFp-5En2DYRG&index=27

distinct?
distinct를 exists로
실습 : 오라클19C
DISTINCT는 SELECT List에서 레코드의 중복을 제거하기 위해서 사용합니다. DISTINCT 키워드 뒤에는 둘 이상의 컬럼을 지정할 수 있는데 선택한 모든 열을 기준으로 중복을 제거하여 고유한 값 조합을 표시 합니다.
SELECT DISTINCT expressions FROM 테이블 WHERE 조건절; |
COUNT(DISTINCT 컬럼) 형식에서는 하나의 컬럼만 사용가능 합니다.
– 여러 컬럼을 사용하려면 CONCAT을 이용하여 우회 합니다. SELECT COUNT( DISTINCT CONCAT ( EMPNO, ENAME ) ) A FROM EMP; |
이러한 distinct는 중복을 제거하기 위해 내부적으로 정렬(SORT)를 동반하므로 대용량의 테이블에서는 사용에 조심해야 합니다.
실습
-- 실습을 위한 테이블의 데이터를 확인 합니다. -- 사원 SELECT * FROM MYEMP1; -- 수강 SELECT * FROM MYSUGANG1; -- 한 사원이 여러강좌를 수강할 수 있으므로 count(empno) 건수가 훨씬 많습니다. SELECT COUNT(EMPNO) FROM MYSUGANG1; SELECT COUNT(DISTINCT EMPNO) FROM MYSUGANG1; -- 테이블에 생성 되어 있는 인덱스를 확인 합니다. SELECT TABLE_NAME, INDEX_NAME FROM USER_INDEXES WHERE TABLE_NAME = 'MYSUGANG1'; SELECT * FROM USER_IND_COLUMNS WHERE INDEX_NAME = 'PK_SUGANG'; -- 한과목 이상 수강한 사원이름 추출, -- 수강 테이블에 사원은 여러 과목을 들을 수 있어서 여러건 있음 SELECT DISTINCT E.ENAME FROM MYEMP1 E INNER JOIN MYSUGANG1 S ON E.EMPNO = S.EMPNO; -- EXISTS를 사용하여 변환 합니다. SELECT E.ENAME FROM MYEMP1 E WHERE EXISTS ( SELECT 1 FROM MYSUGANG1 S WHERE E.EMPNO = S.EMPNO); |
#SQL튜닝, #오라클튜닝, #distinct, #오라클교육, #SQL교육, #오라클학원, #SQL학원, #SQL동영상, #오라클동영상,
SQL튜닝, 오라클튜닝, distinct, 오라클교육, SQL교육, 오라클학원, SQL학원, SQL동영상, 오라클동영상