TABLESAMPLE-component

Van toepassing op:gemarkeerd met ja Databricks SQL-controle gemarkeerd als ja Databricks Runtime

De TABLESAMPLE instructie wordt gebruikt om een steekproef van de relatie te nemen.

Syntaxis

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

Parameters

  • percentage PERCENT

    Een integer of decimaal constante percentage tussen 0 en 100 die aangeeft welk percentage van de rijen van de tabel moet worden genomen.

  • num_rows ROWS

    Een constante positieve INTEGER-expressie num_rows die een absoluut aantal rijen opgeeft van alle rijen die moeten worden genomen.

  • BUCKET fraction OUT OF total

    Een INTEGER-constante fraction die het gedeelte van de GEHELE-constante total aangeeft die moet worden genomen.

  • REPEATABLE ( seed )

    Van toepassing op:controleren met ja Databricks SQL-controle gemarkeerd als ja Databricks Runtime 11.0 en hoger

    Een optionele positieve INTEGER-constante seed, wordt gebruikt om altijd dezelfde set rijen te produceren. Gebruik deze component als u de query meerdere keren opnieuw wilt uitvoeren en u dezelfde set steekproefrijen verwacht.

Opmerking

  • TABLESAMPLE retourneert het aantal aangevraagde rijen of breuken bij benadering.
  • Gebruik TABLESAMPLE (percent PERCENT) altijd als willekeurigheid belangrijk is. TABLESAMPLE (num_rows ROWS) is geen eenvoudige willekeurige steekproef, maar wordt in plaats daarvan geïmplementeerd met behulp van LIMIT.

Voorbeelden

> 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