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