Microsoft アカウントでサインイン
サインインするか、アカウントを作成します。
こんにちは、
Select a different account.
複数のアカウントがあります
サインインに使用するアカウントを選択してください。

計算された一連の範囲内で値が出現する場所を示す Variant (String) を返します。

構文

Partition( number, start, stop, interval)

Partition 関数構文の引数は次のとおりです。

引数

説明

number

必須。 範囲に対して評価する整数です。

start

必須。 数値範囲全体の最初の整数です。 0 より小さい値は指定できません。

stop

必須。 数値範囲全体の最後の整数です。 start 以下の値は指定できません。

interval

必須。 数値範囲全体 (start から stop まで) の中の区画のサイズを指定する整数です。

解説

Partition 関数は、数値範囲全体の中で number が含まれる特定の範囲を特定し、その範囲を示す Variant (String) を返します。 Partition 関数は、クエリで最も役に立ちます。 たとえば、さまざまな範囲 (1 から 1000、1001 から 2000 など) に含まれる注文の数を示す選択クエリを作成できます。

次の表は、開始、停止、間隔の 3 つの引数を使用して範囲がどのように決定されるのか示しています。 [最初の範囲] 列と [最後の範囲] 列には、 パーティションが返す値が 表示されます。 範囲は 、lowervalue:uppervalueで表され、範囲の下位 (下位値) は、範囲の上限 (値) とコロン(:) で区切ります。

start

stop

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: "

上の表の 3 行目は、startstop によって定義される範囲が interval によって均等に分割できない場合の結果を示します。 最後の範囲は stop に達していますが (11 個の値)、interval は 20 です。

Partition は、コロンの左右の文字数が等しくなるように (stop の文字数より 1 だけ大きい文字数)、必要に応じて先頭にスペースを追加して返します。 これにより、Partition を他の値と共に使った場合でも、結果のテキストは以降の並べ替え操作の間に正しく処理されます。

interval が 1 の場合は、start 引数と stop 引数に関係なく、範囲は number:number になります。 たとえば、interval が 1、number が 100、stop が 1000 の場合、Partition は " 100: 100" を返します。

いずれかの引数が Null の場合、PartitionNull を返します。

クエリの例

結果

SELECT Partition(単価,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 の例

この例では、Freight フィールドを含む Orders テーブルがあるものとします。 配送料が各範囲に含まれる注文の数をカウントする選択プロシージャを作成します。 最初に 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);

ヘルプを表示

スキルを磨く
トレーニングの探索
新機能を最初に入手
Microsoft Office Insider に参加

この情報は役に立ちましたか?

言語の品質にどの程度満足していますか?
どのような要因がお客様の操作性に影響しましたか?

ご意見をいただきありがとうございます。

×