レコードがそのハッシュ値および指定されたサンプルレートに基づいてサンプリングされるかどうかを確認します。レコードがサンプリングされる場合は true を返し、そうでない場合は false を返します。サンプリング確率は、sample_rate の値と等しくなります。
構文
BOOLEAN ST_IsRandomSampled(RECORD tuple, INTEGER sample_rate)パラメーター
| パラメーター | 説明 |
|---|---|
tuple | ハッシュ値の生成に使用されるレコードのプロパティです。システムはこのハッシュ値に基づいて、レコードをサンプリングするかどうかを判定します。ROW() を使用して、複数のプロパティからハッシュ値を生成できます。テーブル全体に対して正確なサンプリング比率を得るには、一意であり、かつ均等に分散しているプロパティまたはプロパティの組み合わせを選択してください。 |
sample_rate | サンプリング確率を整数パーセントで表した値です。たとえば、値 50 は、各レコードが 50 % の確率でサンプリングされることを意味します。 |
説明
レコードがサンプリングされる場合は
trueを返し、そうでない場合はfalseを返します。サンプリング確率は
sample_rateによって制御されます。戻り値は、
tupleおよびsample_rateの両方に依存します。テーブル内のすべてのレコードに適用する場合、
tupleは各レコードごとに一意である必要があります。これにより、サンプリング対象となるレコード数が、sample_rate× レコード総数に近似します。
例
-- すべてのレコードについて結果を返します。半分のレコードには true、残り半分には false が返されます。
SELECT ST_IsRandomSampled(ROW(id), 50) FROM table;
-- サンプリング確率が 80 % のジオメトリのエリアを計算します。
SELECT ST_Area(geom) FROM table WHERE ST_IsRandomSampled(ROW(geom), 80);
-- ジオメトリをランダムに半分選択し、MVTGeom オブジェクトに変換します。
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));