Clause TABLESAMPLE
S’applique à : Databricks SQL Databricks Runtime
L’instruction TABLESAMPLE
permet d’échantillonner la relation.
Syntaxe
TABLESAMPLE ( { percentage PERCENT ) |
num_rows ROWS |
BUCKET fraction OUT OF total } )
[ REPEATABLE ( seed ) ]
Paramètres
percentage PERCENT
Constante INTEGER ou DECIMAL
percentage
comprise entre 0 et 100 spécifiant le pourcentage des lignes de la table à échantillonner.num_rows ROWS
Expression
num_rows
INTEGER positive constante spécifiant un nombre absolu de lignes parmi toutes les lignes à échantillonner.BUCKET fraction OUT OF total
Constante INTEGER
fraction
spécifiant la partie de la constante INTEGERtotal
à échantillonner.REPEATABLE ( seed )
S’applique à : Databricks SQL Databricks Runtime 11.3 LTS et versions ultérieures
Constante INTEGER
seed
positive facultative, utilisée pour toujours produire le même jeu de lignes. Utilisez cette clause lorsque vous souhaitez réémettre la requête plusieurs fois, et que vous attendez le même jeu de lignes échantillonnées.
Notes
TABLESAMPLE
retourne le nombre approximatif de lignes ou la fraction demandée.- Utilisez toujours
TABLESAMPLE (percent PERCENT)
si la randomisation est importante.TABLESAMPLE (num_rows ROWS)
n’est pas un échantillon aléatoire simple. Il est implémenté à l’aide deLIMIT
.
Exemples
> 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