Samplingsfrågor

TABLESAMPLE-instruktionen används för att prova tabellen. Den stöder följande samplingsmetoder:

  • TABLESAMPLE(x ROWS ): Sampla tabellen ned till det angivna antalet rader.
  • TABLESAMPLE(x PERCENT ): Sampla tabellen ned till den angivna procentandelen. Observera att procentandelar definieras som ett tal mellan 0 och 100.
  • TABLESAMPLE( BUCKET x OUT OF y): Ta ett exempel på tabellen till x ett y decimaltal.

Anteckning

  • TABLESAMPLE returnerar det ungefärliga antalet rader eller bråktal som begärts.
  • Använd alltid TABLESAMPLE (X PERCENT) om slumpmässighet är viktigt. TABLESAMPLE (X ROWS) är inte ett enkelt slumpmässigt urval utan implementeras i stället med hjälp av LIMIT .

Syntax

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

Exempel

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|
+--+----+