Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- lv2
- Queue
- 스프링부트 도커 배포
- 오름차순 정렬
- 프로그래머스 문자열 정렬
- 스프링부트 도커로 배포
- 버퍼
- 클라이언트
- Programmers
- Stack
- SWEA
- lv0
- 스프링부트 도커
- 이진수 변환
- 프로그래머스 자바
- 프로그래머스
- COS Pro
- 문자열
- 프로그래머스 풀이
- java
- 큐
- 자바
- 삼각형의 완성조건
- 알고리즘
- StringTokenizer
- Lv1
- 백준
- 백준 N과 M 자바
- 스택
- index of
Archives
- Today
- Total
mun dev
[Oracle] OVER()와 PARTITION BY 사용하기 본문
OVER() 함수
GROUP BY, ORDER BY를 이용한 서브쿼리를 개선하기 위해 나온 함수
- group by없이 집계함수(sum, count, ..) 를 사용하는 것은 큰 이점이다.
- group by 사용에 따르는 제한적인 부분이나(사용 컬럼 수와 그룹화 시킬 수의 일치.. 등)
- 복잡한 서브쿼리를 자제할 수 있기 때문에 해당 구문을 사용한다.
PARTITION BY() 함수
OVER()함수와 사용했을 때, Group By의 역할을 수행하는 함수
- GROUP BY 없이 OVER()를 통해 집계 함수를 사용하는 건 분명 큰 장점이지만, 대부분 집계 함수는 GROUP BY와 많이 사용하게 된다.
- 때문에, 해당 함수를 통해 특정 컬럼을 묶어주고 내가 필요한 집계 함수를 사용하고자 할 때, 해당 표현을 사용한다.
사용예시
SELECT DEPARTMENT_NAME, LOCATION_ID, COUNT(LOCATION_ID) OVER(PARTITION BY LOCATION_ID) NUM
FROM DEPARTMENTS
이런 식으로 쿼리를 작성했을 때,
회사 이름, 지역코드, 해당 지역코드가 몇 군데인지 출력할 수 있다.
'DB > Oracle' 카테고리의 다른 글
[Oracle] 문자형 함수 CONCAT, LOWER등 (0) | 2024.01.31 |
---|---|
[Oracle] 숫자 함수 Round, Floor, Ceil 사용법 (0) | 2024.01.30 |
[SQL] 집합 연산자 정리 (UNION, INTERSECT...) (0) | 2024.01.24 |
[Oracle] INSTR 함수, 특정 문자 위치 확인 (0) | 2024.01.23 |
[Oracle] CONNECT BY 순차적 목록 만들기 (0) | 2024.01.19 |