목록Tools/SQL (10)
나의 분석일기 ♬
[SQL] Analytic SQL_Window 절Window 절 = { ROWS | RANGE }BETWEEN{ UNBOUNDED PRECEDING | CURRENT ROW | value_expr { PRECEDING | FOLLOWING }AND{ UNBOUNDED FOLLOWING | CURRENT ROW | value_expr { PRECEDING | FOLLOWING }| { UNBOUNDED PRECEDING | CURRENT ROW | value_expr PRECEDING} Window 절의 상세 구문 설명구문구문 설명ROWS | RANGEWindow의 개별 row를 정의함. Rows는 물리적인 row를, Range는 논리적인 row를 의미. Order by 절이 없으면 해당 구문은 기술..

Analytic SQL_집계 Analytic집계(Aggregate) Analytic SQLsum(), max(),min(),avg(),count() 와 같은 집계 함수를 window를 이용하여 로우 레벨로 자유 자재로 집계할 수 있는 기능 제공OVER ([ Partition 절 ] → 그룹화 컬럼명[ Sorting 절 ] → 정렬 컬럼명(Window 이동 방향 기준 컬럼 명)[ Window 절 ] → Window 범위(Rows, Range)) - SUM() Analytic SQL 활용select order_id, line_prod_seq, product_id, amount , sum(amount) over (partition by order_id) as total_sum_by_ord , sum(am..
1장. 데이터 모델링의 이해 ● 발생 시점에 따른 엔터티 분류 : 기본/키 엔터티, 중심 엔터티, 행위 엔터티 ● 모델링의 특징 - 추상화 : 현실세계를 일정한 형식에 맞춰 표현 - 단순화 : 복잡한 현실을 제한된 언어나 표기법을 통해 이해하기 쉽게 함 - 정확화 : 애매모호함을 배제하고 누구나 이해가 가능하도록 정확하게 현상을 기술 ● 데이터 모델링 정보시스템을 구축하기 위한 데이터 관점의 업무 분석 기법 현실세계의 데이터에 대해 약속된 표기법에 의해 표현하는 과정 데이터베이스를 구축하기 위한 분석/설계의 과정 ● 데이터 모델링이 필요한 주요 이유 업무를 구성하는 기초가 되는 정보들에 대해 일정한 표기법에 의해 표현함으로써 정보시스템 구축의 대상이 되는 업무 내용을 정확하게 분석 + 분석된 모델을 가지..

역분위함수 - percentile_disc() / percentile_cont()특정 분위수에 해당하는 값을 반환 percentile_disc : 0~1 사이의 분위수 값을 입력하면 해당 분위수 값 이상인 것중에서 최소 cum_dist 값을 가지는 값을 반환 percentile_disc는 이산 역분포함수, percentile_cont는 연속 역분포함수를 기반으로 함 입력받은 분위수가 특정 로우를 정확하게 지정하지 못하고, 두 로우 사이일때 - percentile_cont는 보간법을 이용하여 보정 - percentile_disc는 두 로우에서 작은 값을 반환 (ex) percentile_disc() (ex) percentile_cont()

순위 함수 - cume_dist(), percent_rank(), ntile()● cume_dist() 누적분포, 분위수를 파티션 내의 건수로 적용하고 0~1 사이 값으로 변환 ● percent_rank() : rank()를 0~1 사이 값으로 정규화시킴 ● ntile() : 지정된 숫자만큼의 분위를 정하여 그룹핑하는데 적용 (ex)

first_value() / last_value() 함수window에서 order by로 기술된 순으로 가장 첫번째/가장 마지막에 위치한 데이터를 가져옴 ● first_value() : window의 가장 첫번째에 위치한 데이터를 가져옴 ● last_value() : window의 가장 마지막에 위치한 데이터를 가져옴 partition by는 생략 가능하지만, order by는 반드시 필요함 window 절 생략가능(기본값은 range between unbounded preceding and current row) (ex)first_hire_sal은 부서 별 고용일 오름차순 기준으로 가장 첫번째(오래된) 고용일의 sal 값을 출력함last_hire_sal은 부서 별 고용일 오름차순 기준으로 가장 마지막(..

lead() / lag() 함수● lag() : 현재 행보다 이전 행의 값을 가져옴 ※ order by는 오름차순으로 고정하는 것이 좋음. ● lead() : 현재 행보다 다음 행의 값을 가져옴 함수 형태lag / lead (expr [,offset] [,default])○ expr : 적용할 컬럼명 ○ offset : 값을 가져올 행의 위치 offset값. 기본값은 1 ○ default : 행의 위치 offset값으로 Null값일 때 대체할 값. 기본값은 Null ※ default 값을 설정하는 경우 offset값이 기본 1이더라도 반드시 값을 1로 명시해줘야함 partition by는 생략 가능하지만, order by는 반드시 필요함. window절은 사용되지 않음 (ex..

JOIN(조인)관계형 DBMS에서 가장 기본이자 중요한 기능두 개 이상의 테이블을 연결하여 데이터를 추출 1. INNER JOIN(내부 조인)가장 많이 사용되는 조인 방식. 두 개의 테이블을 공통된 열을 통해 결합하는 조인 방식▼ SQL 기본 형태SELECT [열 이름]FROM [테이블 명_1](INNER)JOIN [테이블 명_2] ON [조인 조건](WHERE 검색조건)※ inner 는 생략 가능 (EX)두 개 테이블을 공통된 열인 deptno로 통해 결합 2. OUTER JOIN(외부 조인)두 개의 테이블 중 한쪽에만 데이터가 있어도 결과가 나오는 조인 방식● LEFT OUTER JOIN : 왼쪽 테이블의 모든 값이 출력되는 조인● RIGHT OUTER JOIN : 오른쪽 테이블의 모든 값이 출력되는..