Partition 함수

적용 대상
Microsoft 365용 Access Access 2024 Access 2021 Access 2019 Access 2016

계산된 일련의 범위 내에서 숫자가 발생하는 위치를 나타내는 변형 (문자열)을 반환합니다.

구문

Partition(number, start, stop, interval)

파티션 함수 구문에는 다음과 같은 인수가 사용됩니다.

인수 설명
숫자 필수 요소입니다. 범위에 대해 평가하려는 정수입니다.
시작 필수 요소입니다. 전체 숫자 범위의 시작 부분인 정수입니다. 숫자가 0보다 작으면 안 됩니다.
중지 필수 요소입니다. 전체 숫자 범위의 끝 부분인 정수입니다. 숫자는 start보다 작거나 같을 수 없습니다.
interval 필수 요소입니다. 전체 숫자 범위( 시작중지 사이) 내에서 파티션의 크기를 지정하는 정수입니다.

주의

Partition 함수는 숫자가 속하는 특정 범위를 식별하고 해당 범위를 설명하는 변형(문자열)을 반환합니다. Partition 함수는 쿼리에서 가장 유용합니다. 다양한 범위(예: 1에서 1000까지, 1001에서 2000까지의 주문 값 등) 내에 속하는 주문 수를 보여주는 선택 쿼리를 만들 수 있습니다.

다음 표에서는 시작, 중지간격 의 세 가지 인수 집합을 사용하여 범위를 결정하는 방법을 보여 줍니다. 첫 번째 범위 및 마지막 범위 열에는 파티션 이 반환하는 항목이 표시됩니다. 범위는 lowervalue:uppervalue로 표시되며, 여기서 범위의 하한(lowervalue)은 콜론(:)을 사용하여 범위의 상한(uppervalue)과 구분됩니다.

시작 중지 interval 첫 번째 이전 첫 번째 범위 마지막 범위 다음 번 이후
0 99 5 " :-1" " 0: 4" " 95: 99" " 100: "
20 199 10 " : 19" " 20: 29" " 190: 199" " 200: "
100 1010 20 " : 99" " 100: 119" " 1000: 1010" " 1011: "

위에 표시된 표에서 세 번째 줄은 시작중지간격으로 균등하게 나눌 수 없는 숫자 집합을 정의할 때의 결과를 보여 줍니다. 간격이 20이지만 마지막 범위는 중지(11자리)까지 확장됩니다.

필요한 경우 Partition 은 콜론의 왼쪽과 오른쪽에 정지에 1을 더한 문자 수와 같도록 선행 공백이 충분한 범위를 반환합니다. 이렇게 하면 다른 숫자와 함께 파티션 을 사용하는 경우 후속 정렬 작업 중에 결과 텍스트가 제대로 처리됩니다.

간격이 1이면 시작중지 인수에 관계없이 범위는 숫자:숫자입니다. 예를 들어 간격 이 1이고 숫자 가 100이고 중지 가 1000이면 파티션은 " 100: 100"을 반환합니다.

Null인 파트가 있으면 파티션은Null을 반환합니다.

쿼리 예제

Expression 결과
SELECT Partition(unitprice,40,240,20) AS PriceRange, count(productsales.unitprice) AS Count FROM productSales GROUP BY Partition(unitprice,40,240,20); "interval"(20) 크기가 동일한 "start"(40)에서 "stop"(240)까지 "unitprice" 필드의 값에 대한 범위 집합을 만들고 각 범위에서 "unitprice"의 수를 계산합니다. PriceRange 열의 범위와 'Count' 열의 개수를 표시합니다.

VBA 예제

이 예제에서는 화물 필드가 포함된 주문 테이블이 있다고 가정합니다. 운송료가 여러 범위 각각에 속하는 주문 수를 계산하는 선택 절차를 만듭니다. Partition 함수를 사용하여 먼저 이러한 범위를 설정한 다음 SQL Count 함수가 각 범위의 주문 수를 계산합니다. 이 예제에서 Partition 함수의 인수는 start = 0, stop = 500, interval = 50입니다. 따라서 첫 번째 범위는 0:49이고 최대 500까지 계속됩니다.

SELECT DISTINCTROW Partition([freight],0, 500, 50) AS Range,
Count(Orders.Freight) AS Count
FROM Orders
GROUP BY Partition([freight],0,500,50);