일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Socket 설명
- Jdbc 자동커밋
- Java Oracle Select
- .git 안보이는이유
- SQL DQL
- SQL
- java sql
- 한글깨짐
- Modul error
- java Oracle 연동방법
- Socket 이루어지는 과정
- 자동 import
- MS949
- sc.nextLine 혼자종료
- DQL 명령어
- Oracle DML 정리
- UTF-8
- java
- sql function
- console한글깨짐
- eclipse 유용한 단축키
- Eclipse
- nextLine 스스로종료 해결법
- ORACLE USING
- oracle
- Jdbc commit()
- EUC-KR
- java Oracle 연동
- Java Oracle SQL Select
- sql 함수
- Today
- Total
개발 1도 모르는 사람
[Oracle & SQL] Function (함수)(3) 본문
이번글은 나도 딱 한번 써보았고 이해하기도 어려운 내용을 일단 담아본다.
굉장히 어렵다고 생각한 부분이라 나중에 하면서 앎을 거듭하게 될때 수정할 듯 하다.
WINDOW :
SQL 에서 사용되는 분석 함수
결과 집합 내에서 행의 순서와 관련된 계산을 수행할 수 있음
집계, 순위, 평균, 합계 등을 계산할 때 유용
데이터를 파티션 별로 분할하고 순서를 정의한 다음 각 파티션 내에 계산을 수행
<윈도우함수>(<표현식>) OVER (
PARTITION BY <파티션 열>
ORDER BY <정렬 열>
ROWS BETWEEN <시작 행> AND <끝 행>
<윈도우 함수> : 사용할 윈도우 함수 작성
ex) SUM, AVG, RANK 등
<표현 식> : 계산을 수행할 열 또는 식
PARTITION BY : 데이터를 파티션으로 나누느데 사용할 열을 지정
ORDER BY : 각 파티션 내에서 행 순서를 정의하는데 사용할 열을 지정
ROWS BETWEEN : 계산을 수행할 행의 범위를 정의하는데 사용
코드예제)
SELECT order_id, order_date, total_price,
SUM(total_price) OVER (ORDER BY order_date) AS OD -- (ORDER BY order_date) 을 기준으로 SUM(total_price)
FROM orders;
--SUM(total_price) OVER (ORDER BY order_date) AS OD; -- 이 부분이 윈도우 함수
--이 함수는 order_date를 기준으로 각 주문의 총 가격을 누적한 값을 반환 한 것
--이 결과 집합에는 order_id, order_date, total_price, OD 열이 포함
--각 주문에 대한 누적 가격을 게산할 수 있음
RANK 함수 :
동일한 값이 있는 경우 동일한 순위 부여
동일한 값이 여러 번 나타나면 동일한 순위가 여러번 반복
예를들어 동일한 값을 가진 두 번재와 세 번재 행에 둘 다 2위 할당
결과 집합에서 중간에 순위를 건너뛸 수 있음
코드예제 )
SELECT order_id, order_date, total_price,
RANK() OVER (PARTITION BY <파티션 열> ORDER BY order_date) AS OD
-- (PARTITION BY <파티션 열> ORDER BY order_date) 기준으로 랭크를 매김
FROM orders;
RANK() ROW_NUMBER() 함수 :
결과 집합의 행에 순위를 할당하는데 사용
동일한 값이 있더라도 각 행에 고유한 순위를 부여
동일한 값이 있는 경우에도 각 행에 대해 중복되지 않는 순위를 할당
예를 들어 동일한 값을 가진 두 번째와 세 번째 행에 대해 각각 2위와 3위 할당
결과 집합에서 순서는 항상 연속적
ROWNUM : 데이터베이스에서 사용할 수 있는 가상 열 중 하나
검색 결과 집합의 각 행에 할당된 고유 번호를 나타냄
결과 집합의 특정 행을 선택하거나 행에 번호를 할당하는데 사용
특징 : 검색 결과 집합을 처리하는 동안 생성됨
결과 집합에 대한 각 행에 할당
1부터 시작하여 각 행에 연속된 정수 값을 부여
원하는 행을 선택하거나 행에 일련번호를 할당할 수 있지만
결과를 정렬하거나 분할하는 작업에 영향을 주진 않음
'Oracle & SQL > SQL' 카테고리의 다른 글
[ Oracle & SQL ] DQL 명령어 정리 (2) (0) | 2023.10.13 |
---|---|
[Oracle & SQL] DQL 명령어 정리 (1) (0) | 2023.10.13 |
[Oracle & SQL] Function (함수)(2) (0) | 2023.10.13 |
[Oracle & SQL] AS (Alias) 한글명 "과 ' 유의사항 (1) | 2023.10.11 |
[Oracle & SQL] DDL 명령어,개념 정리 (1) | 2023.10.10 |