본문 바로가기

Oracle

[QUERY]PARTITIION ADD 파티션 있는 테이블 생성하기. 완전 짜증남. 그래서 짜본 쿼리 유용할지 ... 모르면 손이 고생. 2000년 ~ 2006년 데이터 : 년 파티션 2007년 ~ 2020년 데이터 : 월 파티션 파티션 명 : PT_YYYYMMDD -- ~ 2007 yearwith a as (select level L from dual connect by level< 7)SELECT 'ALTER TABLE '||TABLE_OWNER||'.'||TABLE_NAME||' ADD PARTITION PT_'||TO_CHAR(TO_NUMBER(SUBSTR(PARTITION_NAME,4,4))+L)||'0101 VALUES LESS THAN ('''||TO_CHAR(TO_NUMBER(SUBSTR(PARTITION_NAME,4,4))+L.. 더보기
[SQL QUERY] DIMENSION 미매핑 데이터 삽입하기 Description Create by Cheon Jeonghyeon on 2012.03.07 in Korea 작업 설명 DW 계정의 모든 Dimension 테이블을 대상으로 (D_로 시작하는 테이블) 미매핑 데이터가 없는 테이블들에 (Merge 문) 미매핑데이터를 삽입한다. 이때 DATE 형은 오늘 날짜를, NUMBER 형은 0을, CHAR나 VARCHAR2 형은 'Z' 코드를 삽입하는데 컬럼 길이가 4보다 작을 경우는 컬럼 길이에 맞추어 삽입하도록 한다. 다음과 같은 명령을 PL/SQL을 이용하여 DYNAMIC SQL 호출 방식을 사용하여 수행하도록 한다. BEGIN FOR i IN ( SELECT DISTINCT LISTAGG(COL) WITHIN GROUP (ORDER BY COLUMN_ID) O.. 더보기
[Oracle] 조인 수행 원리 1. NL Join (Nested Loops) 중첩 for 문 형태로 조인을 수행 for driving table { for the other one { join statement } } 작업 방법 1. 선행 테이블에서 주어진 조건을 만족하는 행을 찾음 2. 선행 테이블의 조인 키 값을 가지고 후행 테이블에서 조인 수행 3. 선행 테이블의 조건을 만족하는 모든 행에 대해 1번 작업 반복 수행 first_rows 에 적합한?? 조인이 셩공하면 바로 조인 결과를 보여 줄 수 있음. 2. Sort Merge Join 조인 컬럼을 기준으로 데이터를 정렬하여 조인을 수행 스캔 방식으로 데이터를 읽는다. 단점: 메모리 딸리면 성능 저하 (소트 작업) 대량 조인 성능 비교 - 해쉬조인>소트머지조인 장점: 동등 조건 .. 더보기
[Oracle] window function (analytic) (주관적인 입장에서) 잘 안쓰는 함수 정리 테스트 환경 oracle 11gr2 - scott/tiger 참조: sql 전문가 가이드 1. ratio_to_report 함수 해당 컬럼을 컬럼/sum(컬럼)으로 나타냄 SELECT ENAME, SAL, ROUND(RATIO_TO_REPORT(SAL) OVER(), 2) AS R_R FROM EMP WHERE JOB = 'SALESMAN'; 2. percent_rank 함수 처음과 끝을 0 과 1로 잡고 위치를 나타냄 SELECT DEPTNO, ENAME, SAL, PERCENT_RANK() OVER (PARTITION BY DEPTNO ORDER BY SAL DESC) AS P_R FROM EMP; 3. cume_dist 함수 건수의 누적 백분율이란다. 마지.. 더보기
[퍼옴] 윈도우 함수 (UNBOUNDED PRECEDING / FOLLOWING / CURRENT) 윈도우 함수 [출처] 윈도우 함수 (UNBOUNDED PRECEDING / FOLLOWING / CURRENT)|작성자 Kyrandes 분석함수중에서 윈도우절(WINDOW절)을 사용할수 있는 함수를 윈도우함수라고 한다. 고로 분석함수중에서 일부만 윈도우절을 사용할수 있다는것이다. PARTITION BY 절에 의해 명시된 그룹을 다시 그룹핑할수 있다. 윈도우 함수 종류 - AVG, COUNT, FIRST_VALUE, LAST_VALUE, MAX, MIN, STDDEV, SUM... 문법 > SUM(컬럼명) OVER( PARTITION BY [컬럼] ORDER BY [컬럼] [ASC/DESC] ROWS / RANGE BETWEEN UNBOUNDED PRECEDING / PRECEDING / CURRENT R.. 더보기