-
SQL - 컬럼(열)의 데이터에 따라 누적 값을 구하는 법공부 이야기/데이터베이스 2020. 8. 23. 16:01
미국, 영국, 프랑스, 독일 등으로 나오는 컬럼 값에 대해
해당 국가 안에서 누적 값을 일자별로 구하고 싶은 경우가 있다.
예시로 COL3 컬럼에 대해 누적 평균 값을 구하는 공식은 다음과 같다.
당연히 SELECT 절에 들어갈 것이고, 산출된 컬럼 값에 대한 이중 참조를 하는 것이므로 PARTITION 함수를 사용한다.
AVG (COL3) OVER
(PARTITION BY COL1 ORDER BY COL3 RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
파란색 글자가 핵심이다.
1. 범위를 지정해주는 키워드로 RANGE BETWEEN를 사용한다.
2. UNBOUNDED PRECEDING은 파티션 함수에서 사용하는 것으로 START WITH와 동일한 의미를 가진다. 즉, 첫번째 행부터 시작한다는 뜻
3. CURRENT ROW는 현재 행까지라는 값을 나타내므로 누적 값을 산출하기 위한 키워드이다.
4. ORDER BY COL3을 한 이유는 위 사진처럼 오름차순으로 정렬된 값에 대해 누적 값을 구하기 위함이다.
'공부 이야기 > 데이터베이스' 카테고리의 다른 글
SQL - <> JOIN 연산 (0) 2020.08.23 SQL - 순위 관련된 함수 (0) 2020.08.23 SQL - WHERE 절에서 NULL 값 조건 주는 법 (0) 2020.08.23 SQL - 옵티마이저 종류 (0) 2020.08.23 SQL - LENGTH 함수에 대해 (0) 2020.08.22