Cloudflare Pipelines のスカラー関数実装は Apache DataFusion ↗(Arroyo ↗ 経由)を基にしており、このドキュメントは DataFusion の関数リファレンスから派生しています。
配列の末尾に要素を追加します。
array_append(array, element)引数
- array: 配列式。 定数、列、関数、および配列演算子の任意の組み合わせを使えます。
- element: 配列へ追加する要素。
例
> select array_append([1, 2, 3], 4);
+--------------------------------------+
| array_append(List([1,2,3]),Int64(4)) |
+--------------------------------------+
| [1, 2, 3, 4] |
+--------------------------------------+エイリアス
- array_push_back
- list_append
- list_push_back
配列を並べ替えます。
array_sort(array, desc, nulls_first)引数
- array: 配列式。 定数、列、関数、および配列演算子の任意の組み合わせを使えます。
- desc: 降順で並べ替えるかどうか(
ASCまたはDESC)。 - nulls_first: null を先頭に置くかどうか(
NULLS FIRSTまたはNULLS LAST)。
例
> select array_sort([3, 1, 2]);
+-----------------------------+
| array_sort(List([3,1,2])) |
+-----------------------------+
| [1, 2, 3] |
+-----------------------------+エイリアス
- list_sort
リストを size 個の要素になるようにリサイズします。新しい要素は value で初期化します。value を指定しない場合は空になります。
array_resize(array, size, value)引数
- array: 配列式。 定数、列、関数、および配列演算子の任意の組み合わせを使えます。
- size: 指定した配列の新しいサイズ。
- value: 新しい要素の値。指定しない場合は空です。
例
> select array_resize([1, 2, 3], 5, 0);
+-------------------------------------+
| array_resize(List([1,2,3],5,0)) |
+-------------------------------------+
| [1, 2, 3, 0, 0] |
+-------------------------------------+エイリアス
- list_resize
array_concat のエイリアスです。
配列を連結します。
array_concat(array[, ..., array_n])引数
- array: 連結する配列式。 定数、列、関数、および配列演算子の任意の組み合わせを使えます。
- array_n: 続けて連結する配列列、またはリテラル配列。
例
> select array_concat([1, 2], [3, 4], [5, 6]);
+---------------------------------------------------+
| array_concat(List([1,2]),List([3,4]),List([5,6])) |
+---------------------------------------------------+
| [1, 2, 3, 4, 5, 6] |
+---------------------------------------------------+エイリアス
- array_cat
- list_cat
- list_concat
array_has のエイリアスです。
配列が要素を含む場合に true を返します。
array_has(array, element)引数
- array: 配列式。 定数、列、関数、および配列演算子の任意の組み合わせを使えます。
- element: スカラーまたは配列式。 定数、列、関数、および配列演算子の任意の組み合わせを使えます。
エイリアス
- list_has
サブ配列のすべての要素が配列に存在する場合に true を返します。
array_has_all(array, sub-array)引数
- array: 配列式。 定数、列、関数、および配列演算子の任意の組み合わせを使えます。
- sub-array: 配列式。 定数、列、関数、および配列演算子の任意の組み合わせを使えます。
エイリアス
- list_has_all
両方の配列に共通する要素がある場合に true を返します。
array_has_any(array, sub-array)引数
- array: 配列式。 定数、列、関数、および配列演算子の任意の組み合わせを使えます。
- sub-array: 配列式。 定数、列、関数、および配列演算子の任意の組み合わせを使えます。
エイリアス
- list_has_any
配列の各次元を配列として返します。
array_dims(array)引数
- array: 配列式。 定数、列、関数、および配列演算子の任意の組み合わせを使えます。
例
> select array_dims([[1, 2, 3], [4, 5, 6]]);
+---------------------------------+
| array_dims(List([1,2,3,4,5,6])) |
+---------------------------------+
| [2, 3] |
+---------------------------------+エイリアス
- list_dims
重複を除いた配列の一意な値を返します。
array_distinct(array)引数
- array: 配列式。 定数、列、関数、および配列演算子の任意の組み合わせを使えます。
例
> select array_distinct([1, 3, 2, 3, 1, 2, 4]);
+---------------------------------+
| array_distinct(List([1,2,3,4])) |
+---------------------------------+
| [1, 2, 3, 4] |
+---------------------------------+エイリアス
- list_distinct
配列からインデックス n の要素を取り出します。
array_element(array, index)引数
- array: 配列式。 定数、列、関数、および配列演算子の任意の組み合わせを使えます。
- index: 配列から要素を取り出すインデックス。
例
> select array_element([1, 2, 3, 4], 3);
+-----------------------------------------+
| array_element(List([1,2,3,4]),Int64(3)) |
+-----------------------------------------+
| 3 |
+-----------------------------------------+エイリアス
- array_extract
- list_element
- list_extract
array_element のエイリアスです。
指定した値のコピーで埋めた配列を返します。
非推奨: 代わりに array_repeat を使ってください。
array_fill(element, array)引数
- array: 配列式。 定数、列、関数、および配列演算子の任意の組み合わせを使えます。
- element: 配列へコピーする要素。
配列の配列を平坦な配列へ変換します。
- 入れ子の深さに関係なく適用されます
- すでに平坦な配列は変更しません
平坦化した配列には、元のすべての配列の要素が含まれます。
引数
- array: 配列式。 定数、列、関数、および配列演算子の任意の組み合わせを使えます。
flatten(array)array_position のエイリアスです。
array1 と array2 の共通部分の要素からなる配列を返します。
array_intersect(array1, array2)引数
- array1: 配列式。 定数、列、関数、および配列演算子の任意の組み合わせを使えます。
- array2: 配列式。 定数、列、関数、および配列演算子の任意の組み合わせを使えます。
例
> select array_intersect([1, 2, 3, 4], [5, 6, 3, 4]);
+----------------------------------------------------+
| array_intersect([1, 2, 3, 4], [5, 6, 3, 4]); |
+----------------------------------------------------+
| [3, 4] |
+----------------------------------------------------+
> select array_intersect([1, 2, 3, 4], [5, 6, 7, 8]);
+----------------------------------------------------+
| array_intersect([1, 2, 3, 4], [5, 6, 7, 8]); |
+----------------------------------------------------+
| [] |
+----------------------------------------------------+エイリアス
- list_intersect
array_to_string のエイリアスです。
指定した配列次元の長さを返します。
array_length(array, dimension)引数
- array: 配列式。 定数、列、関数、および配列演算子の任意の組み合わせを使えます。
- dimension: 配列の次元。
例
> select array_length([1, 2, 3, 4, 5]);
+---------------------------------+
| array_length(List([1,2,3,4,5])) |
+---------------------------------+
| 5 |
+---------------------------------+エイリアス
- list_length
配列の次元数を返します。
array_ndims(array, element)引数
- array: 配列式。 定数、列、関数、および配列演算子の任意の組み合わせを使えます。
例
> select array_ndims([[1, 2, 3], [4, 5, 6]]);
+----------------------------------+
| array_ndims(List([1,2,3,4,5,6])) |
+----------------------------------+
| 2 |
+----------------------------------+エイリアス
- list_ndims
配列の先頭に要素を追加します。
array_prepend(element, array)引数
- element: 配列の先頭へ追加する要素。
- array: 配列式。 定数、列、関数、および配列演算子の任意の組み合わせを使えます。
例
> select array_prepend(1, [2, 3, 4]);
+---------------------------------------+
| array_prepend(Int64(1),List([2,3,4])) |
+---------------------------------------+
| [1, 2, 3, 4] |
+---------------------------------------+エイリアス
- array_push_front
- list_prepend
- list_push_front
先頭要素を除いた配列を返します。
array_pop_front(array)引数
- array: 配列式。 定数、列、関数、および配列演算子の任意の組み合わせを使えます。
例
> select array_pop_front([1, 2, 3]);
+-------------------------------+
| array_pop_front(List([1,2,3])) |
+-------------------------------+
| [2, 3] |
+-------------------------------+エイリアス
- list_pop_front
末尾要素を除いた配列を返します。
array_pop_back(array)引数
- array: 配列式。 定数、列、関数、および配列演算子の任意の組み合わせを使えます。
例
> select array_pop_back([1, 2, 3]);
+-------------------------------+
| array_pop_back(List([1,2,3])) |
+-------------------------------+
| [1, 2] |
+-------------------------------+エイリアス
- list_pop_back
配列内で指定した要素が最初に現れる位置を返します。
array_position(array, element)
array_position(array, element, index)引数
- array: 配列式。 定数、列、関数、および配列演算子の任意の組み合わせを使えます。
- element: 配列内で位置を探す要素。
- index: 検索を開始するインデックス。
例
> select array_position([1, 2, 2, 3, 1, 4], 2);
+----------------------------------------------+
| array_position(List([1,2,2,3,1,4]),Int64(2)) |
+----------------------------------------------+
| 2 |
+----------------------------------------------+エイリアス
- array_indexof
- list_indexof
- list_position
配列内の要素を検索し、出現位置をすべて返します。
array_positions(array, element)引数
- array: 配列式。 定数、列、関数、および配列演算子の任意の組み合わせを使えます。
- element: 配列内で位置を探す要素。
例
> select array_positions([1, 2, 2, 3, 1, 4], 2);
+-----------------------------------------------+
| array_positions(List([1,2,2,3,1,4]),Int64(2)) |
+-----------------------------------------------+
| [2, 3] |
+-----------------------------------------------+エイリアス
- list_positions
array_append のエイリアスです。
array_prepend のエイリアスです。
要素を count 回含む配列を返します。
array_repeat(element, count)引数
- element: 要素の式。 定数、列、関数、および配列演算子の任意の組み合わせを使えます。
- count: 要素を繰り返す回数。
例
> select array_repeat(1, 3);
+---------------------------------+
| array_repeat(Int64(1),Int64(3)) |
+---------------------------------+
| [1, 1, 1] |
+---------------------------------+> select array_repeat([1, 2], 2);
+------------------------------------+
| array_repeat(List([1,2]),Int64(2)) |
+------------------------------------+
| [[1, 2], [1, 2]] |
+------------------------------------+エイリアス
- list_repeat
指定した値と等しい最初の要素を配列から削除します。
array_remove(array, element)引数
- array: 配列式。 定数、列、関数、および配列演算子の任意の組み合わせを使えます。
- element: 配列から削除する要素。
例
> select array_remove([1, 2, 2, 3, 2, 1, 4], 2);
+----------------------------------------------+
| array_remove(List([1,2,2,3,2,1,4]),Int64(2)) |
+----------------------------------------------+
| [1, 2, 3, 2, 1, 4] |
+----------------------------------------------+エイリアス
- list_remove
指定した値と等しい最初の max 個の要素を配列から削除します。
array_remove_n(array, element, max)引数
- array: 配列式。 定数、列、関数、および配列演算子の任意の組み合わせを使えます。
- element: 配列から削除する要素。
- max: 削除する最初の出現回数。
例
> select array_remove_n([1, 2, 2, 3, 2, 1, 4], 2, 2);
+---------------------------------------------------------+
| array_remove_n(List([1,2,2,3,2,1,4]),Int64(2),Int64(2)) |
+---------------------------------------------------------+
| [1, 3, 2, 1, 4] |
+---------------------------------------------------------+エイリアス
- list_remove_n
指定した値と等しい要素を配列からすべて削除します。
array_remove_all(array, element)引数
- array: 配列式。 定数、列、関数、および配列演算子の任意の組み合わせを使えます。
- element: 配列から削除する要素。
例
> select array_remove_all([1, 2, 2, 3, 2, 1, 4], 2);
+--------------------------------------------------+
| array_remove_all(List([1,2,2,3,2,1,4]),Int64(2)) |
+--------------------------------------------------+
| [1, 3, 1, 4] |
+--------------------------------------------------+エイリアス
- list_remove_all
指定した要素の最初の出現を、別の指定した要素に置き換えます。
array_replace(array, from, to)引数
- array: 配列式。 定数、列、関数、および配列演算子の任意の組み合わせを使えます。
- from: 置き換え元の要素。
- to: 置き換え先の要素。
例
> select array_replace([1, 2, 2, 3, 2, 1, 4], 2, 5);
+--------------------------------------------------------+
| array_replace(List([1,2,2,3,2,1,4]),Int64(2),Int64(5)) |
+--------------------------------------------------------+
| [1, 5, 2, 3, 2, 1, 4] |
+--------------------------------------------------------+エイリアス
- list_replace
指定した要素の最初の max 回の出現を、別の指定した要素に置き換えます。
array_replace_n(array, from, to, max)引数
- array: 配列式。 定数、列、関数、および配列演算子の任意の組み合わせを使えます。
- from: 置き換え元の要素。
- to: 置き換え先の要素。
- max: 置き換える最初の出現回数。
例
> select array_replace_n([1, 2, 2, 3, 2, 1, 4], 2, 5, 2);
+-------------------------------------------------------------------+
| array_replace_n(List([1,2,2,3,2,1,4]),Int64(2),Int64(5),Int64(2)) |
+-------------------------------------------------------------------+
| [1, 5, 5, 3, 2, 1, 4] |
+-------------------------------------------------------------------+エイリアス
- list_replace_n
指定した要素のすべての出現を、別の指定した要素に置き換えます。
array_replace_all(array, from, to)引数
- array: 配列式。 定数、列、関数、および配列演算子の任意の組み合わせを使えます。
- from: 置き換え元の要素。
- to: 置き換え先の要素。
例
> select array_replace_all([1, 2, 2, 3, 2, 1, 4], 2, 5);
+------------------------------------------------------------+
| array_replace_all(List([1,2,2,3,2,1,4]),Int64(2),Int64(5)) |
+------------------------------------------------------------+
| [1, 5, 5, 3, 5, 1, 4] |
+------------------------------------------------------------+エイリアス
- list_replace_all
要素の順序を逆にした配列を返します。
array_reverse(array)引数
- array: 配列式。 定数、列、関数、および配列演算子の任意の組み合わせを使えます。
例
> select array_reverse([1, 2, 3, 4]);
+------------------------------------------------------------+
| array_reverse(List([1, 2, 3, 4])) |
+------------------------------------------------------------+
| [4, 3, 2, 1] |
+------------------------------------------------------------+エイリアス
- list_reverse
1 始まりの開始位置と終了位置に基づく配列のスライスを返します。
array_slice(array, begin, end)引数
- array: 配列式。 定数、列、関数、および配列演算子の任意の組み合わせを使えます。
- begin: 最初の要素のインデックス。 負の値の場合は、配列の末尾から数えます。
- end: 最後の要素のインデックス。 負の値の場合は、配列の末尾から数えます。
- stride: 配列スライスのストライド。デフォルトは 1 です。
例
> select array_slice([1, 2, 3, 4, 5, 6, 7, 8], 3, 6);
+--------------------------------------------------------+
| array_slice(List([1,2,3,4,5,6,7,8]),Int64(3),Int64(6)) |
+--------------------------------------------------------+
| [3, 4, 5, 6] |
+--------------------------------------------------------+エイリアス
- list_slice
各要素をテキスト表現へ変換します。
array_to_string(array, delimiter)引数
- array: 配列式。 定数、列、関数、および配列演算子の任意の組み合わせを使えます。
- delimiter: 配列要素の区切り文字。
例
> select array_to_string([[1, 2, 3, 4], [5, 6, 7, 8]], ',');
+----------------------------------------------------+
| array_to_string(List([1,2,3,4,5,6,7,8]),Utf8(",")) |
+----------------------------------------------------+
| 1,2,3,4,5,6,7,8 |
+----------------------------------------------------+エイリアス
- array_join
- list_join
- list_to_string
両方の配列に存在する要素(両方の配列のすべての要素)を、重複なしで含む配列を返します。
array_union(array1, array2)引数
- array1: 配列式。 定数、列、関数、および配列演算子の任意の組み合わせを使えます。
- array2: 配列式。 定数、列、関数、および配列演算子の任意の組み合わせを使えます。
例
> select array_union([1, 2, 3, 4], [5, 6, 3, 4]);
+----------------------------------------------------+
| array_union([1, 2, 3, 4], [5, 6, 3, 4]); |
+----------------------------------------------------+
| [1, 2, 3, 4, 5, 6] |
+----------------------------------------------------+
> select array_union([1, 2, 3, 4], [5, 6, 7, 8]);
+----------------------------------------------------+
| array_union([1, 2, 3, 4], [5, 6, 7, 8]); |
+----------------------------------------------------+
| [1, 2, 3, 4, 5, 6, 7, 8] |
+----------------------------------------------------+エイリアス
- list_union
最初の配列にはあるが、2 番目の配列にはない要素からなる配列を返します。
array_except(array1, array2)引数
- array1: 配列式。 定数、列、関数、および配列演算子の任意の組み合わせを使えます。
- array2: 配列式。 定数、列、関数、および配列演算子の任意の組み合わせを使えます。
例
> select array_except([1, 2, 3, 4], [5, 6, 3, 4]);
+----------------------------------------------------+
| array_except([1, 2, 3, 4], [5, 6, 3, 4]); |
+----------------------------------------------------+
| [1, 2] |
+----------------------------------------------------+
> select array_except([1, 2, 3, 4], [3, 4, 5, 6]);
+----------------------------------------------------+
| array_except([1, 2, 3, 4], [3, 4, 5, 6]); |
+----------------------------------------------------+
| [1, 2] |
+----------------------------------------------------+エイリアス
- list_except
配列内の要素の総数を返します。
cardinality(array)引数
- array: 配列式。 定数、列、関数、および配列演算子の任意の組み合わせを使えます。
例
> select cardinality([[1, 2, 3, 4], [5, 6, 7, 8]]);
+--------------------------------------+
| cardinality(List([1,2,3,4,5,6,7,8])) |
+--------------------------------------+
| 8 |
+--------------------------------------+空の配列なら 1、空でない配列なら 0 を返します。
empty(array)引数
- array: 配列式。 定数、列、関数、および配列演算子の任意の組み合わせを使えます。
例
> select empty([1]);
+------------------+
| empty(List([1])) |
+------------------+
| 0 |
+------------------+エイリアス
- array_empty,
- list_empty
range 関数に似ていますが、上限を含みます。
generate_series(start, stop, step)引数
- start: 範囲の開始
- end: 範囲の終了(含む)
- step: 増分(0 にはできません)
例
> select generate_series(1,3);
+------------------------------------+
| generate_series(Int64(1),Int64(3)) |
+------------------------------------+
| [1, 2, 3] |
+------------------------------------+array_append のエイリアスです。
array_concat のエイリアスです。
array_concat のエイリアスです。
array_dims のエイリアスです。
array_dims のエイリアスです。
array_element のエイリアスです。
empty のエイリアスです。
array_element のエイリアスです。
array_element のエイリアスです。
array_has のエイリアスです。
array_has_all のエイリアスです。
array_has_any のエイリアスです。
array_position のエイリアスです。
array_position のエイリアスです。
array_to_string のエイリアスです。
array_length のエイリアスです。
array_ndims のエイリアスです。
array_prepend のエイリアスです。
array_pop_back のエイリアスです。
array_pop_front のエイリアスです。
array_position のエイリアスです。
array_positions のエイリアスです。
array_append のエイリアスです。
array_prepend のエイリアスです。
array_repeat のエイリアスです。
array_resize のエイリアスです。
array_remove のエイリアスです。
array_remove_n のエイリアスです。
array_remove_all のエイリアスです。
array_replace のエイリアスです。
array_replace_n のエイリアスです。
array_replace_all のエイリアスです。
array_reverse のエイリアスです。
array_slice のエイリアスです。
array_sort のエイリアスです。
array_to_string のエイリアスです。
array_union のエイリアスです。
指定した入力式から Arrow 配列を返します。
make_array(expression1[, ..., expression_n])empty のエイリアスです。
引数
- expression_n: 出力配列に含める式。 定数、列、関数、および算術演算子や文字列演算子の任意の組み合わせを使えます。
例
> select make_array(1, 2, 3, 4, 5);
+----------------------------------------------------------+
| make_array(Int64(1),Int64(2),Int64(3),Int64(4),Int64(5)) |
+----------------------------------------------------------+
| [1, 2, 3, 4, 5] |
+----------------------------------------------------------+エイリアス
- make_list
make_array のエイリアスです。
区切り文字に基づいて文字列を部分文字列の配列へ分割します。省略可能な null_str 引数に一致する部分文字列は NULL に置き換えられます。
SELECT string_to_array('abc##def', '##') または SELECT string_to_array('abc def', ' ', 'def')
starts_with(str, delimiter[, null_str])引数
- str: 分割する文字列式。
- delimiter: 分割に使う区切り文字列。
- null_str:
NULLに置き換える部分文字列。
エイリアス
- string_to_list
string_to_array のエイリアスです。
配列から末尾の n 個の要素を削除します。
非推奨: 代わりに array_slice を使ってください。
trim_array(array, n)引数
- array: 配列式。 定数、列、関数、および配列演算子の任意の組み合わせを使えます。
- n: 配列から削る要素数。
start から stop まで、step 刻みの Arrow 配列を返します。SELECT range(2, 10, 3) -> [2, 5, 8] または SELECT range(DATE '1992-09-01', DATE '1993-03-01', INTERVAL '1' MONTH);
範囲 start..end には、start <= x < end を満たすすべての値が含まれます。start >= end の場合は空です。
step は 0 にできません(その場合、範囲は意味を持ちません)。
必要な範囲が数値のときは、(stop)、(start, stop)、(start, stop, step) をパラメーターとして受け付けます。日付の範囲では、NULL でない 3 つのパラメーターが必要です。 たとえば、
SELECT range(3);
SELECT range(1,5);
SELECT range(1,5,1);は数値範囲では使えますが、日付範囲では
SELECT range(DATE '1992-09-01', DATE '1993-03-01', INTERVAL '1' MONTH);だけが使え、
SELECT range(DATE '1992-09-01', DATE '1993-03-01', NULL);
SELECT range(NULL, DATE '1993-03-01', INTERVAL '1' MONTH);
SELECT range(DATE '1992-09-01', NULL, INTERVAL '1' MONTH);は使えません。
引数
- start: 範囲の開始
- end: 範囲の終了(含まない)
- step: 増分(0 にはできません)
エイリアス
- generate_series