Requêtes d’échantillonnage

L' TABLESAMPLE instruction est utilisée pour échantillonner la table. Il prend en charge les méthodes d’échantillonnage suivantes :

  • TABLESAMPLE(x ROWS ) : échantillonne le tableau au nombre donné de lignes.
  • TABLESAMPLE(x PERCENT ) : échantillonne le tableau au pourcentage donné. Notez que les pourcentages sont définis sous la forme d’un nombre compris entre 0 et 100.
  • TABLESAMPLE( BUCKET x OUT OF y) : échantillonne la table à une valeur x hors y fraction.

Notes

  • TABLESAMPLE retourne le nombre approximatif de lignes ou de fractions demandées.
  • Utilisez toujours TABLESAMPLE (X PERCENT) si la randomisation est importante. TABLESAMPLE (X ROWS) n’est pas un exemple aléatoire simple, mais à la place, il est implémenté à l’aide de LIMIT .

Syntaxe

TABLESAMPLE ({ integer_expression | decimal_expression } PERCENT)
    | TABLESAMPLE ( integer_expression ROWS )
    | TABLESAMPLE ( BUCKET integer_expression OUT OF integer_expression )

Exemples

SELECT * FROM test;
+--+----+
|id|name|
+--+----+
| 5|Alex|
| 8|Lucy|
| 2|Mary|
| 4|Fred|
| 1|Lisa|
| 9|Eric|
|10|Adam|
| 6|Mark|
| 7|Lily|
| 3|Evan|
+--+----+

SELECT * FROM test TABLESAMPLE (50 PERCENT);
+--+----+
|id|name|
+--+----+
| 5|Alex|
| 2|Mary|
| 4|Fred|
| 9|Eric|
|10|Adam|
| 3|Evan|
+--+----+

SELECT * FROM test TABLESAMPLE (5 ROWS);
+--+----+
|id|name|
+--+----+
| 5|Alex|
| 8|Lucy|
| 2|Mary|
| 4|Fred|
| 1|Lisa|
+--+----+

SELECT * FROM test TABLESAMPLE (BUCKET 4 OUT OF 10);
+--+----+
|id|name|
+--+----+
| 8|Lucy|
| 2|Mary|
| 9|Eric|
| 6|Mark|
+--+----+