Partition 函數

套用到
Microsoft 365 Access Access 2024 Access 2021 Access 2019 Access 2016

傳回字) (變體,指出數字在計算出的一系列範圍內出現的位置。

語法

磁碟分割 (編號、開始、停止、間隔)

Partition 函數語法具有下列引數:

引數 描述
數字 必要。 您想要根據範圍評估的整數。
開始 必要。 整數,這是整體數字範圍的開頭。 這個數字不能小於 0。
停止 必要。 整數,即整體數字範圍的結尾。 數字不能等於或小於 start
interval 必要。 整數,指定 在開始停止) 之間 (的整體數字範圍內的分割區大小。

註解

Partition 函數可識別數字所在的特定範圍,並傳回描述該範圍的字 (變體) 。 Partition 函數在查詢中最實用。 您可以建立選取查詢,顯示有多少訂單落在各種範圍內,例如,訂單值從 1 到 1000、從 1001 到 2000 等等。

下表顯示如何使用三組 開始停止間隔 引數來決定範圍。 [第一個範圍] 和 [最後一個範圍] 欄會顯示 分割區 傳回的內容。 範圍以 lowervalueuppervalue 表示,其中範圍的低端 (lowervalue) 與範圍的高端 (上限 值) 以冒號 () 分開。

開始 停止 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: "

在上面顯示的表格中,第三行顯示了 StartStop 定義一組無法 以間隔均除的數字時的結果。 最後一個範圍延伸到 停止 (11 個數字) 即使 間隔 是 20。

如有需要, Partition 會傳回具有足夠前置空格的範圍,讓冒號左右兩邊的字元數與 Stop 加上 1 中的字元數相同。 這可確保當您將 Partition 與其他數字搭配使用時,結果的文字將會在後續的任何排序作業中得到正確處理。

如果 interval 為 1,則範圍為 number:number,不論 開始停止 引數為何。 例如,如果 interval 為 1、 數字 為 100、 stop 為 1000,則 分割區 將傳回「 100: 100」。

如果有任何部分為 Null,Partition 會傳回 Null

查詢範例

運算式 結果
SELECT Partition (unitprice,40,240,20) AS PriceRange, count (productsales.unitprice) AS Count FROM productSales GROUP BY Partition (unitprice,40,240,20) ; 為欄位 “unitprice” 中的值建立一組範圍,從 “start” (40) 到 “stop” (240) 具有相等的 “interval” (20) 大小,並計算各自範圍中 “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);