適用対象:
Databricks SQL
Databricks Runtime
TABLESAMPLE ステートメントは、関係をサンプリングするために使用されます。
構文
TABLESAMPLE ( { percentage PERCENT ) |
num_rows ROWS |
BUCKET fraction OUT OF total } )
[ REPEATABLE ( seed ) ]
パラメーター
percentage PERCENT整数または 10 進数の定数
percentage0 から 100 までの範囲で、サンプリングするテーブルの行の割合を指定します。num_rows ROWSサンプリングするすべての行の絶対数を指定する常に正の INTEGER 式
num_rows。BUCKET fraction OUT OF totalINTEGER 定数
fractionのうちでサンプリングする部分を指定する INTEGER 定数total。REPEATABLE ( seed )適用対象:
Databricks SQL
Databricks Runtime 11.3 LTS 以上常に同じ行セットを生成するために使用される、省略可能な正の INTEGER 定数
seed。 この句は、クエリを複数回再発行するときに、サンプリングされた行の同じセットが必要な場合に使用します。
注意
-
TABLESAMPLEは、要求された行または割合の概数を返します。 - ランダム性が重要な場合は、常に
TABLESAMPLE (percent PERCENT)を使用します。TABLESAMPLE (num_rows ROWS)は単純なランダム サンプルではなく、LIMITを使用して実装されています。 -
TABLESAMPLEでは、サンプリングが他のフィルター (WHERE句など) の適用の前に置かされるため、フィルター プッシュダウンはサポートされません。
例
> 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