Zapytania próbkowania

Instrukcja TABLESAMPLE służy do próbkowania tabeli. Obsługuje ona następujące metody próbkowania:

  • TABLESAMPLEROWS(x): Próbkuj tabelę do podanej liczby wierszy.
  • TABLESAMPLEPERCENT(x): Próbkuj tabelę do podanej wartości procentowej. Należy pamiętać, że wartości procentowe są definiowane jako liczba z zakresów od 0 do 100.
  • TABLESAMPLE(x BUCKETOUT OF y): Próbkuj tabelę do x części y ułamkowej.

Uwaga

  • TABLESAMPLE Funkcja zwraca przybliżoną liczbę wierszy lub żądanej części.
  • Zawsze TABLESAMPLE (X PERCENT) używaj, jeśli losowość jest ważna. TABLESAMPLE (X ROWS) Nie jest prostą próbką losową, ale zamiast tego jest implementowane przy LIMIT użyciu .

Składnia

TABLESAMPLE ({ integer_expression | decimal_expression } PERCENT)
    | TABLESAMPLE ( integer_expression ROWS )
    | TABLESAMPLE ( BUCKET integer_expression OUT OF integer_expression )

Przykłady

SELECT * FROM test;
+--+----+
|id|name|
+--+----+
| 5|Alex|
| 8|Lucy|
| 2|Mary|
| 4|Fred|
| 1|Lisa|
| 9|Eric|
|10|Adam|
| 6|Mark|
| 7|Lily|
| 3|Evan|
+--+----+

SELECT * FROM test TABLESAMPLE (50 PERCENT);
+--+----+
|id|name|
+--+----+
| 5|Alex|
| 2|Mary|
| 4|Fred|
| 9|Eric|
|10|Adam|
| 3|Evan|
+--+----+

SELECT * FROM test TABLESAMPLE (5 ROWS);
+--+----+
|id|name|
+--+----+
| 5|Alex|
| 8|Lucy|
| 2|Mary|
| 4|Fred|
| 1|Lisa|
+--+----+

SELECT * FROM test TABLESAMPLE (BUCKET 4 OUT OF 10);
+--+----+
|id|name|
+--+----+
| 8|Lucy|
| 2|Mary|
| 9|Eric|
| 6|Mark|
+--+----+