Табличная функция numbers
-
numbers()– Возвращает бесконечную таблицу с единственным столбцомnumber(UInt64), который содержит целые числа в порядке возрастания, начиная с 0. ИспользуйтеLIMIT(и при необходимостиOFFSET), чтобы ограничить число строк. -
numbers(N)– Возвращает таблицу с единственным столбцомnumber(UInt64), который содержит целые числа от 0 доN - 1. -
numbers(N, M)– Возвращает таблицу с единственным столбцомnumber(UInt64), который содержитMцелых чисел отNдоN + M - 1. -
numbers(N, M, S)– Возвращает таблицу с единственным столбцомnumber(UInt64), который содержит значения в диапазоне[N, N + M)с шагомS(примерноM / Sстрок, с округлением в большую сторону).Sдолжно быть>= 1.
Она аналогична системной таблице system.numbers и может использоваться для тестирования и генерации последовательных значений.
Следующие запросы равнозначны:
Следующие запросы также эквивалентны друг другу:
Также эквивалентны следующие запросы:
Примеры
Первые 10 чисел.
Сгенерируйте последовательность дат с 2010-01-01 по 2010-12-31.
Найдите первый UInt64 >= 10^15, для которого sipHash64(number) имеет 20 нулевых младших битов.
Примечания
- Для повышения производительности, если вы знаете, сколько строк вам требуется, отдавайте предпочтение ограниченным формам (
numbers(N),numbers(N, M[, S])) вместо неограниченныхnumbers()/system.numbers. - Для параллельной генерации используйте
numbers_mt(...)или таблицуsystem.numbers_mt. Имейте в виду, что результаты могут возвращаться в произвольном порядке.