TABLESAMPLE záradék

A következőkre vonatkozik:jelölje be az igennel jelölt jelölőnégyzetet Databricks SQL jelölje be az igennel jelölt jelölőnégyzetet Databricks Runtime

Az TABLESAMPLE utasítás a kapcsolat mintájára szolgál.

Syntax

TABLESAMPLE ( { percentage PERCENT ) |
                num_rows ROWS |
                BUCKET fraction OUT OF total } )
            [ REPEATABLE ( seed ) ]

Paraméterek

  • percentage PERCENT

    0 és 100 közötti egész szám vagy DECIMális állandó percentage , amely megadja, hogy a táblázat sorainak hány százaléka legyen mintavételezésre.

  • num_rows ROWS

    Egy állandó pozitív EGÉSZ SZÁM kifejezés num_rows , amely abszolút számú sort határoz meg a mintául szolgáló összes sorból.

  • BUCKET fraction OUT OF total

    Egy EGÉSZ SZÁM állandó fraction , amely az EGÉSZ SZÁM állandóból total a mintába eső részt adja meg.

  • REPEATABLE ( seed )

    A következőkre vonatkozik:jelölje be az igennel jelölt jelölőnégyzetet Databricks SQL jelölje be az igennel jelölt jelölőnégyzetet Databricks Runtime 11.3 LTS és újabb

    Opcionális pozitív EGÉSZ SZÁM állandó seed, amely mindig ugyanazt a sorkészletet állítja elő. Ezt a záradékot akkor használja, ha többször szeretné újból kiadni a lekérdezést, és ugyanazt a mintasorkészletet várja.

Feljegyzés

  • TABLESAMPLE A kért sorok vagy törtek hozzávetőleges számát adja vissza.
  • Mindig használja TABLESAMPLE (percent PERCENT) , ha fontos a véletlenszerűség. TABLESAMPLE (num_rows ROWS)nem egy egyszerű véletlenszerű minta, hanem a .LIMIT

Példák

> 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