numbers テーブル関数
-
numbers()– 0 から始まる昇順の整数を含む、単一のnumberカラム (UInt64) を持つ無限テーブルを返します。行数を制限するにはLIMIT(および必要に応じてOFFSET)を使用します。 -
numbers(N)– 0 からN - 1までの整数を含む、単一のnumberカラム (UInt64) を持つテーブルを返します。 -
numbers(N, M)–NからN + M - 1までのM個の整数を含む、単一のnumberカラム (UInt64) を持つテーブルを返します。 -
numbers(N, M, S)– ステップS(切り上げでおおよそM / S行)で[N, N + M)の範囲の値を含む、単一のnumberカラム (UInt64) を持つテーブルを返します。Sは>= 1でなければなりません。
これは system.numbers システムテーブルと同様です。テストや連続値の生成に使用できます。
次のクエリは同じ結果になります。
以下のクエリも同等です。
次のクエリも等価です。
例
先頭の 10 個の数値。
2010-01-01 から 2010-12-31 までの日付の連番を生成します。
sipHash64(number) の値の下位 20 ビットが 0 であり、かつ >= 10^15 を満たす最初の UInt64 を見つけます。
注意
- パフォーマンス上の理由から、必要な行数が分かっている場合は、無制限の
numbers()/system.numbersよりも、上限を指定した形式(numbers(N)、numbers(N, M[, S]))を優先して使用してください。 - 並列に生成する場合は、
numbers_mt(...)またはsystem.numbers_mtテーブルを使用してください。結果は任意の順序で返される可能性がある点に注意してください。