TABLESAMPLE 子句

適用於:檢查標示為是 Databricks SQL 檢查標示為是 Databricks Runtime

語句 TABLESAMPLE 是用來取樣關聯性。

語法

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

參數

  • percentage PERCENT

    介於 0 到 100 之間的 INTEGER 或 DECIMAL 常數 percentage ,指定要取樣之數據表數據列的百分比。

  • num_rows ROWS

    常數正 INTEGER 運算式 num_rows ,指定要取樣之所有數據列的絕對數目。

  • BUCKET fraction OUT OF total

    INTEGER 常數,指定要取樣之 INTEGER 常數fractiontotal中的部分。

  • REPEATABLE ( seed )

    適用於:檢查標示為是 Databricks SQL 檢查標示為是 Databricks Runtime 11.3 LTS 和更新版本

    選擇性的正整數常數 seed,用來一律產生相同的數據列集。 當您想要多次重新發出查詢,而且預期相同的取樣數據列集時,請使用這個子句。

注意

  • TABLESAMPLE 會傳回要求的大約數據列數或分數。
  • 如果隨機性很重要,請一律使用 TABLESAMPLE (percent PERCENT)TABLESAMPLE (num_rows ROWS) 不是簡單的隨機範例,而是使用 LIMIT實作 。

範例

> 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