📃 DATABASE/ORACLE
[SQL] WINDOW 함수
WINDOW 함수행과 행간의 관계를 쉽게 정의하기 위해 만든 함수AVG, CORR, COUNT, FIRST_VALUE, LAST_VALUE, MAX, MIN, NTH_VALUE, STDDEV, SUM, VARIANCE 등 함수와 사용가능 FIRST_VALUE(EXPR)파티션별 윈도우에서 가장 먼저 나온 값을 구한다.123456789SELECT DEPARTMENT_ID, EMP_NAME, HIRE_DATE, SALARY , FIRST_VALUE(SALARY) OVER (PARTITION BY DEPARTMENT_ID ORDER BY HIRE_DATE ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) AS ALL_SALARY , FIRST_VALUE(SA..
[SQL] 분석 함수
분석 함수테이블에 있는 로우에 대해 특정 그룹별로 집계값을 산출할 때 사용한다.GROUP BY 절이 그룹별로 로우 수가 줄어들게 하는데 반해, 집계 함수는 로우 손실 없이 집계값을 산출 할 수 있다.분석 함수에서 사용하는 로우별 그룹을 WINDOW 라고 하는데, 집계값 계산을 위한 로우의 범위를 결정하는 역할을 한다. 형태123분석함수(매개변수) OVER (PARTITION BY EXPR1, EXPR2, ... ORDER BY EXPR3, EXPR4, ... WINDOW ...)cs 종류AVG / SUM / MAX / MIN / COUNT / CUME_DIST / DENSE_RANK / PERCENT_RANK / FIRST / LAST / LAG / LEAD / ROW_NUMBER 등 절 설명PARTIT..
[SQL] WITH절과 순환 서브쿼리
WITH 절별칭으로 사용한 SELECT문의 FROM절에 다른 SELECT구문의 별칭 참조가 가능하다.12345WITH 별칭1 AS (서브쿼리) ,별칭2 AS(서브쿼리)...SELECTFROM 별칭1, 별칭2...cs 123456789101112131415161718WITH B2 AS (SELECT PERIOD , REGION , SUM(LOAN_JAN_AMT) JAN_AMT FROM KOR_LOAN_STATUS GROUP BY PERIOD, REGION) , C AS (SELECT B2.PERIOD , MAX(B2.JAN_AMT) MAX_JAN_AMT FROM B2 , ( SELECT MAX(PERIOD) MAX_MONTH FROM KOR_LOAN_STATUS GROUP BY SUBSTR(PERIOD, ..
[SQL] 계층형 쿼리
계층형 쿼리 12345SELECT EXPR1, EXPR2FROM 테이블WHERE 조건START WITH [최상위 조건]CONNECT BY [NOCYCLE] [PRIOR 계층형 구조 조건];cs START WITH 조건계층형 구조에서 최상위 계층의 로우를 식별하는 조건을 명시한다.CONNECT BY 조건계층형 구조가 어떤 식으로 연결되는지를 기술. PRIOR는 계층형 쿼리에서만 사용할 수 있는 연산 계층형 쿼리의 내부적 처리절차1. 조인2. START WITH절의 최상위 계층 로우를 선택3. CONNECT BY절의 구문에 따라 계층형 관계를 파악, 자식 로우 선택.4. 조인을 제외한 WHERE 조건에 해당하지 않는 로우를 걸러냄. 예제123456SELECT DEPARTMENT_ID , LPAD(' ', 3..
[SQL] 내부조인과 외부조인
1. 동등 조인(EQUI JOIN)WHERE절에서 등호 연산자를 이용해 2개 이상의 테이블이나 뷰를 연결한 조인이다. WHERE절에 기술한 조건은 조인조건 이라고 부른다. 123456SELECT A.EMPLOYEE_ID , A.EMP_NAME , A.DEPARTMENT_ID , B.DEPARTMENT_NAMEFROM EMPLOYEES A, DEPARTMENTS BWHERE A.DEPARTMENT_ID = B.DEPARTMENT_ID;cs 2. 세미 조인(SEMI JOIN)서브 쿼리를 이용해 서브 쿼리에 존재하는 데이터만 메인 쿼리에서 추출하는 방법. IN과 EXISTS 연산자를 이용한다. 12345678SELECT DEPARTMENT_ID , DEPARTMENT_NAMEFROM DEPARTMENTS AW..
[SQL] 집합 연산자
집합 연산자데이터 집합을 대상으로 연산을 수행하는 연산자를 말한다. UNION, UNION ALL, INTERSECT, MINUS가 있다. 1. UNION합집합을 의미한다. 두 개의 데이터 집합이 있을 때, 각 집합의 원소를 모두 포함한 결과를 출력한다. 한국의 수출 품목을 조회해보자.1234SELECT GOODSFROM EXP_GOODS_ASIAWHERE COUNTRY = '한국'ORDER BY SEQ;cs 다음으로, 일본의 수출 품목을 조회한다.1234SELECT GOODSFROM EXP_GOODS_ASIAWHERE COUNTRY = '일본'ORDER BY SEQ;cs 한국과 일본의 수출품목을 조회해 각각 하나의 데이터 집합을 얻어냈다.그렇다면, 한국과 일본 모두의 수출품목을 중복값 없이 조회하려면 ..