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

GROUP BY와 PARTITION BY: SQL의 차이점은 무엇입니까?

DDD
풀어 주다: 2025-01-06 06:12:39
원래의
928명이 탐색했습니다.

GROUP BY vs. PARTITION BY: What's the Difference in SQL?

PARTITION BY와 GROUP BY의 차이점 이해

일반적으로 사용되는 SQL 구문인 GROUP BY는 공통 값을 기준으로 데이터 행을 그룹화하여 집계 평가를 가능하게 합니다. 이 그룹화된 행에 대한 기능을 수행합니다. 그러나 데이터베이스 작업에서 PARTITION BY가 등장하면서 이 두 작업의 차이점에 대한 의문이 제기되었습니다.

GROUP BY 개요

GROUP BY 그룹 데이터 레코드는 동일하게 공유됩니다. 지정된 열의 값을 개별 그룹으로 축소합니다. 그런 다음 각 그룹에 대해 후속 집계 함수(예: SUM(), COUNT())가 계산됩니다. GROUP BY의 주요 목적은 대규모 데이터 세트를 요약하고 압축하는 것입니다.

PARTITION BY를 사용한 파티셔닝

GROUP BY와 달리 PARTITION BY는 창 기능의 컨텍스트 내에서 작동합니다. 이러한 함수는 특정 조건에 의해 정의된 범위(또는 "창") 내의 데이터 행을 평가합니다. PARTITION BY는 지정된 열 값을 기준으로 윈도우 모드 데이터를 파티션으로 나눕니다. 그런 다음 창 기능이 각 파티션에 별도로 적용되어 보다 세밀하고 미묘한 계산이 가능합니다.

주요 차이점

  1. 범위: GROUP BY는 전체 쿼리 결과에 영향을 미치며 지정된 기준을 준수하는 모든 행을 그룹화하고 집계합니다. 반면에 PARTITION BY는 창 함수로 제한되어 정의된 창 범위 내에서만 데이터를 분할합니다.
  2. 행 수에 미치는 영향: GROUP BY는 일반적으로 다음과 같이 출력 행 수를 줄입니다. 중복된 값을 병합합니다. 반대로 PARTITION BY는 행 수를 변경하지 않고 대신 창 함수의 결과 계산을 수정합니다.

주문 테이블을 고려해보세요.

CustomerID OrderID
1 10
1 15
2 20
2 25

GROUP 사용 BY:

SELECT CustomerID, COUNT(*) AS OrderCount
FROM Orders
GROUP BY CustomerID
로그인 후 복사

출력:

CustomerID OrderCount
1 2
2 2

PARTITION BY 사용:

SELECT ROW_NUMBER() OVER (PARTITION BY CustomerID ORDER BY OrderID) AS OrderNumberForRow
FROM Orders
로그인 후 복사

출력:

CustomerID OrderID OrderNumberForRow
1 10 1
1 15 2
2 20 1
2 25 2

이 예에서 PARTITION BY는 CustomerID를 기준으로 데이터를 분리하고 각 파티션 내에서 행 번호를 연속적으로 할당합니다.

요약하면 PARTITION BY는 창 함수 계산에 추가적인 유연성을 제공하고 보다 목표화된 평가를 위해 데이터를 분할합니다. 이와 대조적으로 GROUP BY는 간결한 데이터 요약을 위해 전역 집계 및 행 축소를 제공합니다. SQL 코드를 최적화하고 쿼리 효율성을 극대화하려면 이러한 작업 간의 차이점을 이해하는 것이 중요합니다.

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

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿