根據提供的屬性值和採樣率,返回布爾值表示該條記錄是否被採樣。該條記錄被採樣的機率為參數採樣率的值。
文法
BOOLEAN ST_IsRandomSampled(RECORD tuple, INTEGER sample_rate)
參數
參數名稱 | 描述 |
tuple | 用來產生雜湊值,並根據其值決定該條記錄是否被採樣。可使用ROW()將一條記錄的不同屬性值放到一起用來產生雜湊值。屬性的選取應盡量採用不重複且分布均勻的屬性或屬性集合。 |
sample_rate | 採樣率,決定一條記錄被採樣的機率。舉例:如果sample_rate=50,一條記錄有百分之五十的幾率被選中採樣,即ST_IsRandomSampled對百分之五十的資料會返回true。 |
描述
若該條記錄被採樣返回true,否則返回false。
被採樣的機率由參數sample_rate決定。
函數的傳回值是基於參數tuple計算的雜湊值和sample_rate計算得到。
對一張表的所有資料調用該函數時,為使被採樣的記錄條數盡量接近sample_rate和表格記錄總數的乘積,參數tuple的值應不重複。
樣本
-- 一半的結果是true,另一半是false
SELECT ST_IsRandomSampled(ROW(id), 50) FROM table;
-- 對百分之八十的Geom,計算其面積
SELECT ST_Area(geom) FROM table WHERE ST_IsRandomSampled(ROW(geom), 80);
-- 隨機選取一半的Geom,將其轉換成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));