TABLESAMPLE 子句
适用于: Databricks SQL Databricks Runtime
TABLESAMPLE
语句用于对关系进行采样。
语法
TABLESAMPLE ( { percentage PERCENT ) |
num_rows ROWS |
BUCKET fraction OUT OF total } )
[ REPEATABLE ( seed ) ]
parameters
percentage PERCENT
一个介于 0 和 100 之间的整数或十进制常数
percentage
,指定要采样的表行的百分比。num_rows ROWS
一个常数正整数表达式
num_rows
,指定要采样的所有行中的绝对行数。BUCKET fraction OUT OF total
一个整数常数
fraction
,指定要采样的整数常数total
中的部分。REPEATABLE ( seed )
适用于: Databricks SQL Databricks Runtime 11.3 LTS 及更高版本
一个可选的正整数常数
seed
,用于始终生成相同的行集。 如果要多次重新发出查询,并且需要相同的采样行集,请使用此子句。
备注
TABLESAMPLE
返回所请求的大约行数或分数。- 如果随机性很重要,请始终使用
TABLESAMPLE (percent PERCENT)
。TABLESAMPLE (num_rows ROWS)
不是简单的随机示例,而是改用LIMIT
来实现的。
示例
> CREATE TEMPORARY VIEW test(id, name) AS
VALUES ( 1, 'Lisa'),
( 2, 'Mary'),
( 3, 'Evan'),
( 4, 'Fred'),
( 5, 'Alex'),
( 6, 'Mark'),
( 7, 'Lily'),
( 8, 'Lucy'),
( 9, 'Eric'),
(10, 'Adam');
> SELECT * FROM test;
5 Alex
8 Lucy
2 Mary
4 Fred
1 Lisa
9 Eric
10 Adam
6 Mark
7 Lily
3 Evan
> SELECT * FROM test TABLESAMPLE (30 PERCENT) REPEATABLE (123);
1 Lisa
2 Mary
3 Evan
5 Alex
8 Lucy
> SELECT * FROM test TABLESAMPLE (5 ROWS);
5 Alex
8 Lucy
2 Mary
4 Fred
1 Lisa
> SELECT * FROM test TABLESAMPLE (BUCKET 4 OUT OF 10);
8 Lucy
2 Mary
9 Eric
6 Mark