TABLESAMPLE-Klausel
Gilt für: Databricks SQL Databricks Runtime
Die TABLESAMPLE
-Anweisung wird verwendet, um eine Stichprobe aus der Beziehung zu erstellen.
Syntax
TABLESAMPLE ( { percentage PERCENT ) |
num_rows ROWS |
BUCKET fraction OUT OF total } )
[ REPEATABLE ( seed ) ]
Parameter
percentage PERCENT
Eine INTEGER- oder DECIMAL-Konstante
percentage
zwischen 0 und 100, die angibt, welcher Prozentsatz der Zeilen der Tabelle als Stichprobe verwendet werden soll.num_rows ROWS
Ein konstanter positiver INTEGER-Ausdruck
num_rows
, der eine absolute Anzahl von Zeilen aus allen Zeilen der Stichprobe angibt.BUCKET fraction OUT OF total
Eine INTEGER-Konstante
fraction
, die den Teil der INTEGER-Konstantetotal
für die Stichprobe angibt.REPEATABLE ( seed )
Gilt für: Databricks SQL Databricks Runtime 11.3 LTS und höher
Eine optionale positive INTEGER-Konstante
seed
, die verwendet wird, um immer die gleiche Anzahl von Zeilen zu erzeugen. Verwenden Sie diese Klausel, wenn Sie die Abfrage mehrmals wiederholen möchten und dieselbe Menge an Stichprobenzeilen erwarten.
Hinweis
TABLESAMPLE
gibt die ungefähre Anzahl der angeforderten Zeilen oder des Bruchteils zurück.- Verwenden Sie immer
TABLESAMPLE (percent PERCENT)
, wenn Zufallsergebnisse wichtig sind.TABLESAMPLE (num_rows ROWS)
ist keine einfache Zufallsstichprobe, sondern wird stattdessen mitLIMIT
implementiert.
Beispiele
> 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