Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- db
- 에러
- 생성
- 스프링
- 쿼리
- JPA
- Spring
- 방법
- jquery
- 알고리즘
- 시큐리티
- 함수
- Vue
- Java
- oracle
- 자바
- Eclipse
- Security
- kotlin
- 오라클
- GitHub
- 넥사크로
- mybatis
- aws
- 코틀린
- 프로그래머스
- IntelliJ
- JavaScript
- Git
- error
Archives
- Today
- Total
송민준의 개발노트
(Oracle)윈도우 함수 사용법 본문
자. 윈도우 함수란 무엇인가? 분석함수 중에서 윈도우절을 사용하는 함수를 뜻한다!
윈도우 함수를 사용해서 합계, 순위, 행 위치 등을 컨트롤 가능하다.
구조는 다음과 같다.
SELECT 윈도우함수(파람)
OVER(PARTITION BY 칼람 ORDER BY WINDOWING)
- 윈도우 함수 구조
1. 파람 : 윈도우 함수에 따라 0~ 여러개의 파람을 가진다.
2. PARTITION BY : 전체 집합을 기준에 의해 소그룹으로 나눔
3. ORDER BY : 정렬
4. WINDOWING : 행 기준의 범위를 정함
1) ROWS : 부분집합인 윈도우 크기를 물리적 단위로 행의 집합을 지정
2) RANGE : 논리적인 주소에 의해 행 집합을 지정함
3) BETWEEN A AND B : A와 B 사이의 집합
4) UNBOUNDED PRECEDING : 시작 위치
5) UNBOUNDED FOLLOWING : 마지막 위치
6) CURRENT ROW : 윈도우 시작 위치가 현재 행임을 의미(각 행 위치)
예시
- 전체 합(첨부터 끝까지)
select empno, ename, sal,
sum(sal) over (
order by sal
rows between unbounded preceding and unbounded following
) TOTSAL
from emp;
- 처음부터 각 행별 합계(순차적) 반대로 current row 부터 마지막 행까지도 가능하다.
select empno, ename, sal,
sum(sal) over (
order by sal
rows between unbounded preceding and current row
) TOTSAL
from emp;
- rows가 아닌 range를 사용한다면?
select empno, ename, sal,
sum(sal) over (
order by sal
range between unbounded preceding and current row
) TOTSAL
from emp;
보이는가? 같은 값이면 미리 더한다(?)
'DB > 쿼리' 카테고리의 다른 글
oracle 개행 넣기 (0) | 2020.08.05 |
---|---|
(oracle) 다른 테이블 값 참조해서 update 해주기 (0) | 2020.08.04 |
그룹 함수 (0) | 2020.08.03 |
(Oracle)서브쿼리(Subquery)란 무엇인가?? (0) | 2020.07.27 |
DECODE, CASE문 (0) | 2020.07.25 |