Построение случайной выборки из указанного во FROM
источника данных.
TABLESAMPLE
является частью SQL стандарта и работает следующим образом:
Указывается режим работы:
BERNOULLI
означает «медленно, честно просмотрев все данные, но по-настоящему случайно»;SYSTEM
должен использовать знание о физическом хранении данных, чтобы избежать полного их чтения частично жертвуя случайностью выборки.Данные разбиваются на достаточно большие блоки, и происходит сэмплирование данных блоков целиком. Для прикладных расчётов на достаточно больших таблицах результат вполне может оказаться состоятельным.
REPEATABLE
и целое число в скобках, которое будет использовано как seed для генератора псевдослучайных чисел.SAMPLE
является более коротким алиасом, где нет сложных настроек, а размер выборки указывается в долях. На данный момент он соответствует режиму BERNOULLI
.
SELECT *
FROM my_table
TABLESAMPLE BERNOULLI(1.0) REPEATABLE(123); -- один процент таблицы
SELECT *
FROM my_table
TABLESAMPLE SYSTEM(1.0); -- примерно один процент таблицы
SELECT *
FROM my_table
SAMPLE 1.0 / 3; -- треть таблицы