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

SQL의 PARTITION BY와 GROUP BY: 차이점은 무엇인가요?

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

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

SQL에서 PARTITION BY와 GROUP BY의 차이점 이해

분할 및 그룹화는 SQL의 데이터 집계 및 처리에 중요한 작업입니다. PARTITION BY와 GROUP BY는 모두 데이터 분할 및 집계를 포함하지만 기능과 응용 분야에서 상당한 차이가 있습니다.

PARTITION BY: 창 함수에 대한 파티셔닝

PARTITION BY는 정의된 파티션을 기반으로 계산을 수행하는 ROW_NUMBER()와 같은 창 함수와 함께 주로 사용됩니다. 파티션 키라고 하는 지정된 열을 기반으로 데이터를 개별 그룹으로 나눕니다. 각 파티션은 독립적으로 작동하므로 창 함수가 해당 파티션에 상대적인 값을 계산할 수 있습니다.

예를 들어 다음 쿼리는 PARTITION BY를 사용하여 각 고객 ID 내의 행에 일련 번호를 할당합니다.

SELECT ROW_NUMBER() OVER (PARTITION BY customerId ORDER BY orderId) AS OrderNumberForThisCustomer
FROM Orders;
로그인 후 복사

GROUP BY: 데이터를 그룹으로 집계

GROUP BY, 반면에 공통 값을 기반으로 여러 행의 데이터를 집계하도록 설계되었습니다. 그룹화 키라고 하는 지정된 열의 일치하는 값으로 행을 그룹화합니다. 그런 다음 COUNT(*) 또는 SUM()과 같은 집계 함수가 각 그룹에 적용됩니다.

다음 쿼리는 GROUP BY를 사용하여 각 고객의 총 주문 수를 계산합니다.

SELECT customerId, COUNT(*) AS orderCount
FROM Orders
GROUP BY customerId;
로그인 후 복사

주요 차이점

PARTITION BY와 GROUP의 주요 차이점 BY는 다음과 같이 요약할 수 있습니다.

  • 용도: PARTITION BY는 창 기능에 대한 데이터를 분할하는 반면, GROUP BY는 데이터를 그룹으로 집계합니다.
  • 효과 결과: PARTITION BY는 반환된 행 수를 줄이지 않는 반면 GROUP BY는 일반적으로 그룹화 및 집계를 통해 행 수를 줄입니다.
  • 창 함수: PARTITION BY는 창 함수와 호환되므로 파티션 내에서 계산이 가능합니다. GROUP BY는 창 기능을 지원하지 않습니다.
  • 유연성: PARTITION BY는 여러 열을 기준으로 유연한 분할을 허용하는 반면, GROUP BY는 지정된 열을 기준으로 그룹화하도록 제한됩니다.

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

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