>데이터 베이스 >MySQL 튜토리얼 >GROUP BY와 PARTITION BY: 집계 쿼리의 주요 차이점은 무엇입니까?

GROUP BY와 PARTITION BY: 집계 쿼리의 주요 차이점은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2025-01-06 02:02:40616검색

GROUP BY vs. PARTITION BY: What's the Key Difference in Aggregate Queries?

PARTITION BY와 GROUP BY 구별

집계 쿼리 작업 시 GROUP BY는 오랫동안 데이터 조합에 익숙한 옵션이었습니다. 그러나 PARTITION BY의 등장으로 GROUP BY와의 관계에 대한 의문이 제기되는 유사한 개념이 도입되었습니다.

GROUP BY의 역할 이해

GROUP BY는 다음에서 운영됩니다. 쿼리 수준으로 전체 쿼리 결과를 변환합니다. 특정 열을 기준으로 행을 그룹화하여 데이터를 압축하고 각 그룹의 집계 값(예: 개수, 평균, 합계)을 계산합니다. 예를 들면 다음과 같습니다.

select customerId, count(*) as orderCount
from Orders
group by customerId

PARTITION BY: A Different Perspective

GROUP BY와 달리 PARTITION BY는 ROW_NUMBER()와 같은 창 함수와 연결됩니다. 이는 창 계산 범위 내에서 작동하여 이러한 함수가 결과를 계산하는 방법을 수정합니다. 다음 예를 고려하십시오.

select row_number() over (partition by customerId order by orderId)
    as OrderNumberForThisCustomer
from Orders

참고해야 할 주요 차이점

  • 영향 범위: GROUP BY는 전체 쿼리 결과에 영향을 미칩니다. , 데이터를 통합하여 행 수를 줄이는 반면 PARTITION BY는 출력 수를 변경하지 않고 창 기능 내에서만 작동합니다.
  • 집계 및 비집계: GROUP BY는 그룹화된 데이터에 대한 집계 계산을 용이하게 하는 반면 PARTITION BY는 집계 작업을 수행하지 않습니다.
  • 창 함수 수정: PARTITION BY는 계산 수행 방법을 표시하여 창 함수의 동작을 수정합니다. 각 파티션 내에서.

위 내용은 GROUP BY와 PARTITION BY: 집계 쿼리의 주요 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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