このトピックでは、ST_IsRandomSampled関数について説明します。 この関数は、指定されたプロパティ値とサンプルレートに基づいてレコードがサンプリングされているかどうかをチェックし、BOOLEAN値を返します。 レコードがサンプリングされる確率は、sample_rateパラメーターの値です。
構文
BOOLEAN ST_IsRandomSampled(RECORD tuple, INTEGER sample_rate)パラメーター
パラメーター | 説明 |
tuple | レコードのハッシュ値の生成に使用されるプロパティ。 システムは、ハッシュ値に基づいてレコードがサンプリングされるかどうかを判定する。 ROW() を使用して、レコードのさまざまなプロパティに基づいてハッシュ値を生成できます。 選択したプロパティまたはプロパティセットは一意で、均等に分散することを推奨します。 |
sample_rate | サンプルレート。 このパラメータは、レコードがサンプリングされる確率を指定します。 たとえば、sample_rateパラメーターを50に設定すると、レコードがサンプリングされる確率は50% になり、ST_IsRandomSampled関数は、サンプリングされる確率が50% レコードに対してtrueを返します。 |
説明
レコードがサンプリングされると、trueが返されます。 それ以外の場合は、falseが返されます。
レコードがサンプリングされる確率は、sample_rateパラメーターで指定します。
この関数の戻り値は、tupleパラメーターとsample_rateパラメーターの値に基づいて計算されます。
この関数がテーブル内のすべてのデータレコードに対して呼び出される場合、タプルパラメータの値は一意でなければなりません。 これにより、サンプリングされたデータレコードの数が、sample_rateパラメーター値とテーブル内のレコードの総数の積にできるだけ近いことが保証されます。
例
-- Return results. true is returned for half of the data records, and false is returned for the other half of the data records.
SELECT ST_IsRandomSampled(ROW(id), 50) FROM table;
-- Calculate the area of the geometry that has a 80% possibility of being sampled.
SELECT ST_Area(geom) FROM table WHERE ST_IsRandomSampled(ROW(geom), 80);
-- Randomly select half of the geometries and convert them into the MVTGeom objects.
SELECT ST_AsMVTGeom(geom, ST_Transform(ST_TileEnvelope(0,0,0),4326)) FROM table
WHERE ST_IsRandomSampled(ROW(geom), 50) AND geom&&ST_Transform(ST_TileEnvelope(0,0,0),4326));