TABLESAMPLE, klauzula
Dotyczy: Databricks SQL Databricks Runtime
Instrukcja TABLESAMPLE
jest używana do próbkowania relacji.
Składnia
TABLESAMPLE ( { percentage PERCENT ) |
num_rows ROWS |
BUCKET fraction OUT OF total } )
[ REPEATABLE ( seed ) ]
Parametry
percentage PERCENT
Stała
percentage
liczba całkowita lub dziesiętna z zakresu od 0 do 100 określająca procent wierszy tabeli do próbkowania.num_rows ROWS
Stałe dodatnie wyrażenie
num_rows
INTEGER określające bezwzględną liczbę wierszy ze wszystkich wierszy do próbki.BUCKET fraction OUT OF total
Stała
fraction
INTEGER określająca część z stałejtotal
INTEGER do próbkowania.REPEATABLE ( seed )
Dotyczy: Databricks SQL Databricks Runtime 11.3 LTS i nowsze
Opcjonalna dodatnia stała
seed
INTEGER używana do zawsze tworzenia tego samego zestawu wierszy. Użyj tej klauzuli, jeśli chcesz ponownie wysłać zapytanie wiele razy i oczekujesz tego samego zestawu przykładowych wierszy.
Uwaga
TABLESAMPLE
Zwraca przybliżoną liczbę wierszy lub żądany ułamek.- Zawsze używaj
TABLESAMPLE (percent PERCENT)
, jeśli losowość jest ważna.TABLESAMPLE (num_rows ROWS)
nie jest prostą losową próbką, ale zamiast tego jest implementowana przy użyciu metodyLIMIT
.
Przykłady
> 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