采样函数允许从一张表中选择随机样本作为输入,而非将整张表作为输入。
语法
SAMPLE [BLOCK] (sample_percent[, dummy_arg]) [SEED (seed_value)]
参数
参数 | 说明 |
参数 | 说明 |
BLOCK | 采样的基本单位。
|
sample_percent | 采样的百分比,其取值范围为[0, 100]。 |
dummy_arg | 可选参数,为了兼容性而存在,目前对采样结果没有任何实际影响;若选择传入此参数,其值必须大于等于1。 |
seed_value | 可选参数,表示采样时使用的随机种子,在其他参数及条件均相同的情况下,指定相同的随机种子可以保证两次采样得到相同的结果。 |
返回类型
返回的是原表经采样后的一个子集,其行数小于等于原表。
示例
建表及插入数据。
CREATE TABLE sample_table_test (id int, name text); INSERT INTO sample_table_test SELECT i, repeat(i::text, 10) FROM generate_series(0, 10000) s(i);
以BLOCK为基本单位,从表
sample_table_test
中采样10%的数据,传入了无用的第二个参数1,指定了随机种子10。SELECT COUNT(*) FROM sample_table_test SAMPLE BLOCK (10, 1) SEED (10); # 输出一行873,可复现
sample_pecent指定的是每次采样的概率,并不意味着采样结果一定是该比例,但大致应在该比例附近。
以行为基本单位,从表
sample_table_test
中采样5%的数据,没有指定随机种子。SELECT COUNT(*) FROM sample_table_test SAMPLE (5); # 输出一行485,没有指定随机种子,难复现
该文章对您有帮助吗?
- 本页导读 (1)
- 语法
- 参数
- 返回类型
- 示例