Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
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 PERCENTConstante INTEGER ou DECIMAL
percentagecomprise entre 0 et 100 spécifiant le pourcentage des lignes de la table à échantillonner.num_rows ROWSExpression
num_rowsINTEGER positive constante spécifiant un nombre absolu de lignes parmi toutes les lignes à échantillonner.BUCKET fraction OUT OF totalConstante INTEGER
fractionspécifiant la partie de la constante INTEGERtotalà échantillonner.REPEATABLE ( seed )S’applique à :
Databricks SQL
Databricks Runtime 11.3 LTS et versions ultérieuresConstante INTEGER
seedpositive 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
-
TABLESAMPLEretourne 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. -
TABLESAMPLEne prend pas en charge l'application en cascade de filtres, car l’échantillonnage précède l’application d’autres filtres, tels que les clausesWHERE.
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