집 >데이터 베이스 >MySQL 튜토리얼 >창 함수를 사용하여 PostgreSQL에서 누적 합계를 계산하는 방법은 무엇입니까?
PostgreSQL에서 누적 합계 계산
PostgreSQL 데이터베이스에서는 창 함수를 사용하여 임시 테이블에서 필드의 누적 합계(또는 누계)를 계산하고 결과를 대상 테이블로 전송할 수 있습니다. 창 함수를 사용하면 파티션(이 경우 circle_id
열을 기반으로 생성된 파티션)의 일련의 행을 기반으로 계산을 수행할 수 있습니다.
창 함수 구문
여기서 사용된 윈도우 함수 구문은 다음과 같습니다.
<code class="language-sql">sum(amount) OVER (PARTITION BY circle_id ORDER BY ea_year, ea_month) AS cum_amt</code>
이 창 함수는 circle_id
열로 분할됩니다. 즉, 각 circle_id
에 대해 누적 합계가 별도로 계산됩니다. 각 파티션 내에서 행은 ea_year
및 ea_month
열을 기준으로 정렬되어 각 circle
월에 대해 가장 빠른 것부터 가장 늦은 것까지 누적 합계가 계산됩니다.
예시 쿼리
제공된 테이블 구조에 따라 다음 쿼리는 필요한 결과를 생성합니다.
<code class="language-sql">SELECT ea_month, id, amount, ea_year, circle_id, sum(amount) OVER (PARTITION BY circle_id ORDER BY ea_year, ea_month) AS cum_amt FROM tbl ORDER BY circle_id, ea_year, ea_month;</code>
설명
이 쿼리는 tbl
테이블에서 해당 열을 추출하고 각 circle_id
에 대한 누적 합계를 계산합니다. OVER
절은 창 함수의 분할 및 순서를 지정하여 각 circle
에 대해 누적 합계가 올바르게 계산되도록 합니다.
중요사항
OVER
절 내 ORDER BY
절의 순서가 중요합니다. ORDER BY
절에서 직접 사용할 수 있습니다. 그러나 월의 문자열 표현을 사용하는 경우 to_date()
함수를 사용하여 이를 날짜 값으로 변환해야 할 수도 있습니다. cum_amt
열에는 amount
으로 분할되고 circle_id
및 ea_year
으로 정렬된 ea_month
열의 누적 합계가 포함됩니다. 위 내용은 창 함수를 사용하여 PostgreSQL에서 누적 합계를 계산하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!