목록분류 전체보기 (216)
IT STUDY LOG
# 분석함수 - SELECT 절에만 쓰일 수 있음 - 비즈니스 분야에서 자주 행해지는 여러가지 형태의 분석에 유용하게 활용될 수 있음 - 각 윈도우별 집합 연산 수행한 결과를 리턴하며 JOIN, 프로그램의 오버헤드 줄임 # 분석함수 구문 - 구문: SELECT 분석함수(인자) OVER ([PARTITION BY 컬럼리스트] [ORDER BY 컬럼리스트] [WINDOWING절: ((ROWS|RANGE) (BETWEEN 시작위치 AND 끝위치|시작위치))])FROM 테이블명; OVER : 분석함수임을 나타내는 키워드 PARTITION BY : 쿼리 결과를 지정한 컬럼 별로 그룹핑 (생략시 하나의 그룹), 계산 대상 그룹 지정 ORDER BY : PARTITION BY로 묶인 컬럼 그룹내에 있는 행의 검색 순..
# INLINE 뷰 - FROM절에 사용한 서브쿼리 - SQL문이 실행될 때만 임시적으로 생성되는 동적 뷰 SELECT * FROM (SELECT job, ROUND(AVG(sal)) FROM emp GROUP BY job ORDER BY ROUND(AVG(sal)) DESC) WHERE ROWNUM
# 다중행/다중열 서브쿼리 다중행 서브쿼리 - SELECT 문장으로부터 하나 이상의 행을 검색하는 질의 IN SELECT empno, ename, deptno, sal FROM emp WHERE sal IN (SELECT sal FROM emp WHERE job = 'MANAGER' ); ANY - 서브쿼리에서 반환한 각각 값과 비교해 하나라도 참이면 참 (OR로 동작) ANY : 최소값보다 큼 = ANY : IN과 동일 SELECT empno, ename, deptno, sal FROM emp WHERE sal = ANY (SELECT sal -- IN과 동일한 결과 FROM emp WHERE job = 'MANAGER' ); ALL - 서브쿼리에서 반환한 각각 값과 ..
# 서브쿼리의 정의 RDB > SQL > 쿼리 명령어 하나의 SQL문 안에 포함된 또 다른 SQL문 서브쿼리는 단일행 함수를 사용하는 것처럼 한 번만 실행되는 것이 아니라 메인쿼리 매 행마다 실행 (성능 저하 가능성) # 서브쿼리의 종류 단일 행 서브쿼리 다중 행 서브쿼리 다중 열 서브쿼리 상관관계 서브쿼리 INLINE VIEW # 참고 스캔 방법 FULL SCAN : 전체 테이블 스캔 INDEX SCAN : WHERE절의 컬럼 위치를 인덱스 테이블에서 확인 후 ROWID로 테이블 내 위치를 찾음 허수 컬럼 ROWID ROWNUM : ROWNUM에서 쓰일 수 있는 연산자는