>데이터 베이스 >MySQL 튜토리얼 >창 함수를 사용하여 PostgreSQL에서 누적 합계를 계산하는 방법은 무엇입니까?

창 함수를 사용하여 PostgreSQL에서 누적 합계를 계산하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2025-01-12 17:31:50331검색

How to Calculate Cumulative Sums in PostgreSQL Using Window Functions?

PostgreSQL의 누적 합계 계산

데이터 처리 시 특정 필드의 누적 합계 또는 누적 합계를 계산해야 하는 경우가 많습니다. PostgreSQL에서는 창 함수를 사용하여 이를 쉽게 달성할 수 있습니다.

창 기능 소개

창 기능을 사용하면 특정 조건에 따라 그룹화된 행에 대해 계산을 수행할 수 있습니다. 이 예에서는 circle_id을 기준으로 행을 그룹화하고 amount 필드의 누적 합계를 계산하려고 합니다.

누적합 계산 쿼리

다음 쿼리는 누적 합계를 계산하는 방법을 보여줍니다.

<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>

이 쿼리에서:

  • PARTITION BY 절은 circle_id 열을 기준으로 행을 그룹화합니다.
  • ORDER BY 절은 ea_yearea_month을 기준으로 각 파티션의 행을 정렬합니다.
  • OVER 절은 각 파티션에서 시작하여 현재 행까지의 행에 sum() 함수를 적용하는 창을 정의합니다.
  • 결과 누적 합계는 cum_amt 열에 저장됩니다.

날짜 및 시간 데이터 처리

ea_yearea_month 열이 문자열로 저장된 경우 쿼리는 시간순이 아닌 알파벳순으로 정렬됩니다. 올바르게 정렬하려면 계산을 수행하기 전에 날짜 유형으로 변환하는 것이 좋습니다.

동료 제외

PostgreSQL 11 이상에서는 frame_exclusion 옵션을 사용하여 창 기능에서 피어가 처리되는 방식을 제어할 수 있습니다. 이를 통해 계산에서 특정 행을 포함하거나 제외할 수 있습니다.

이러한 단계를 따르면 PostgreSQL에서 누적 합계를 효율적으로 계산하여 데이터에 대한 귀중한 통찰력을 얻을 수 있습니다.

위 내용은 창 함수를 사용하여 PostgreSQL에서 누적 합계를 계산하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.