関数名 | ステートメント | 意味 |
[x] | []は配列内の要素を取得するために使用され、element_at関数と同等です。 | |
array_agg(x) | 配列形式でx内のすべての値を返します。 | |
array_distinct(x) | 配列の重複を排除し、配列内の一意な要素を取得します。 | |
array_except(x,y) | xとyの2つの配列の差集合を計算します。 | |
array_intersect(x, y) | xとyの2つの配列の積集合を計算します。 | |
array_join(x, delimiter) | 指定された区切り文字を使用して、配列内の要素を1つの文字列に連結します。配列にnull要素が含まれている場合、null要素は無視されます。説明:array_join関数を使用する場合、返される結果は最大1KBで、1KBを超えるデータは切り捨てられます。 | |
| array_join(x, delimiter, null_replacement) | 文字列配列をdelimiterで連結し、文字列に結合します。null値はnull_replacementで置き換えます。説明:array_join関数を使用する場合、返される結果は最大1KBで、1KBを超えるデータは切り捨てられます。 |
array_max(x) | 配列内の最大値を取得します。 | |
array_min(x) | 配列内の最小値を取得します。 | |
array_position(x, element) | 指定された要素のインデックスを取得します。インデックスは1から始まります。指定された要素が存在しない場合は0を返します。 | |
array_remove(x, element) | 配列内の指定された要素を削除します。 | |
array_sort(x) | 配列要素を昇順にソートします。null要素がある場合、null要素は最後に配置されます。 | |
array_union(x, y) | 2つの配列の和集合を計算します。 | |
cardinality(x) | 配列内の要素数を計算します。 | |
concat(x, y...) | 複数の配列を1つの配列に連結します。 | |
contains(x, element) | 配列に指定された要素が含まれているかどうかを判断します。含まれている場合は true を返します。 | |
element_at(x, y) | 配列内のy番目の要素を返します。 | |
filter(x, lambda_expression) | Lambda式と組み合わせて、配列内の要素をフィルタリングし、Lambda式を満たす要素のみを返します。 | |
flatten(x) | 2次元配列を1次元配列に変換します。 | |
reduce(x, lambda_expression) | Lambda式の定義に従って、配列内の各要素を加算し、その計算結果を返します。 | |
reverse(x) | 配列内の要素を逆順に並べ替えます。 | |
sequence(x, y) | 指定された開始値に基づいて配列を返します。その要素は、開始値の範囲内で連続的かつ増加する値です。増加間隔はデフォルト値の1です。 | |
| sequence(x, y, step) | 指定された開始値に基づいて配列を返します。その要素は、開始値の範囲内で連続的かつ増加する値です。増加間隔をカスタマイズします。 |
shuffle(x) | 配列要素をランダムに並べ替えます。 | |
slice(x, start, length) | 配列のサブセットを取得します。 | |
transform(x, lambda_expression) | Lambda式を配列の各要素に適用します。 | |
zip(x, y) | 複数の配列を1つの2次元配列に結合し、各配列内の同じインデックスを持つ要素で新しい配列を構成します。 | |
zip_with(x, y, lambda_expression) | Lambda式の定義に従って、2つの配列を1つの配列に結合します。 | |
[x]
パラメータ | 説明 |
x | 配列の添字は1から始まります。パラメータ値はbigint型です。 |
array:[12,23,26,48,26]
* | SELECT cast(json_parse(array) as array(bigint)) [2]
23
array_agg(x)
パラメータ | 説明 |
x | パラメータ値は任意のデータ型です。 |
* | SELECT array_agg(status) AS array
[200,200,200,404,200,200]
array_distinct(x)
パラメータ | 説明 |
x | パラメータ値はarray型です。 |
array:[12,23,26,48,26]
* | SELECT array_distinct(cast(json_parse(array) as array(bigint)))
[12,23,26,48]
array_except(x, y)
パラメータ | 説明 |
x | パラメータ値はarray型です。 |
y | パラメータ値はarray型です。 |
* | SELECT array_except(array[1,2,3,4,5],array[1,3,5,7])
[2,4]
array_intersect(x, y)
パラメータ | 説明 |
x | パラメータ値はarray型です。 |
y | パラメータ値はarray型です。 |
* | SELECT array_intersect(array[1,2,3,4,5],array[1,3,5,7])
[1,3,5]
array_join(x, delimiter)
array_join(x, delimiter, null_replacement)
パラメータ | 説明 |
x | パラメータ値はarray型です。 |
delimiter | 区切り文字は、文字列にすることができます。 |
null_replacement | null要素を置き換えるための文字列。 |
* | SELECT array_join(array[null,'中国','sh'],'/','region')
region/中国/sh
array_max(x)
パラメータ | 説明 |
x | パラメータ値はarray型です。 |
array:[12,23,26,48,26]
* | SELECT array_max(try_cast(json_parse(array) as array(bigint))) AS max_number
48
array_min(x)
パラメータ | 説明 |
x | パラメータ値はarray型です。 |
array:[12,23,26,48,26]
* | SELECT array_min(try_cast(json_parse(array) as array(bigint))) AS min_number
12
array_position(x, element)
パラメータ | 説明 |
x | パラメータ値は配列型です。 |
element | 配列内の1つの要素。 |
* | SELECT array_position(array[23,46,35],46)
2
array_remove(x, element)
パラメータ | 説明 |
x | パラメータ値は配列型です。 |
element | 配列内の1つの要素。 |
* | SELECT array_remove(array[23,46,35],23)
[46,35]
array_sort(x)
パラメータ | 説明 |
x | パラメータ値はarray型です。 |
* | SELECT array_sort(array['b','d',null,'c','a'])
["a","b","c","d",null]
array_union(x, y)
パラメータ | 説明 |
x | パラメータ値はarray型です。 |
y | パラメータ値はarray型です。 |
* | SELECT array_union(array[1,2,3,4,5],array[1,3,5,7])
[1,2,3,4,5,7]
cardinality(x)
パラメータ | 説明 |
x | パラメータ値はarray型です。 |
array:[12,23,26,48,26]
* | SELECT cardinality(cast(json_parse(array) as array(bigint)))
5
concat(x, y...)
パラメータ | 説明 |
x | パラメータ値はarray型です。 |
y | パラメータ値はarray型です。 |
* | SELECT concat(array['red','blue'],array['yellow','green'])
["red","blue","yellow","green"]
contains(x, element)
パラメータ | 説明 |
x | パラメータ値は配列型です。 |
element | 配列内の1つの要素。 |
array:[12,23,26,48,26]
* | SELECT contains(cast(json_parse(array) as array(varchar)),'23')
TRUE
element_at(x, y)
パラメータ | 説明 |
x | パラメータ値はarray型です。 |
element | 配列の添字は1から始まります。パラメータ値はbigint型です。 |
array:[12,23,26,48,26]
* | SELECT element_at(cast(json_parse(number) AS array(varchar)), 2)
23
filter(x, lambda_expression)
パラメータ | 説明 |
x | パラメータ値はarray型です。 |
lambda_expression |
x -> x > 0はLambda式です。* | SELECT filter(array[5,-6,null,7],x -> x > 0)
[5,7]
flatten(x)
パラメータ | 説明 |
x | パラメータ値はarray型です。 |
* | SELECT flatten(array[array[1,2,3,4],array[4,3,2,1]])
[1,2,3,4,4,3,2,1]
reduce(x, lambda_expression)
パラメータ | 説明 |
x | パラメータ値はarray型です。 |
lambda_expression |
* | SELECT reduce(array[5,20,50],0,(s, x) -> s + x, s -> s)
75
reverse(x)
パラメータ | 説明 |
x | パラメータ値はarray型です。 |
* | SELECT reverse(array[1,2,3,4,5])
[5,4,3,2,1]
sequence(x, y)
sequence(x, y, step)
パラメータ | 説明 |
x | パラメータ値はbigint型、timestamp型(Unixタイムスタンプ、日付と時刻の式)です。 |
y | パラメータ値はbigint型、timestamp型(Unixタイムスタンプ、日付と時刻の式)です。 |
step | 数値間隔。 パラメータ値が日付と時刻の式である場合、stepの形式は次のとおりです。 interval 'n' year to monthは、間隔がn年であることを表します。 interval 'n' day to secondは、間隔がn日であることを表します。 |
* | SELECT sequence(0,10,2)
[0,2,4,6,8,10]
* | SELECT sequence(from_unixtime(1508737026),from_unixtime(1628734085),interval '1' year to month )
["2017-10-23 05:37:06.0","2018-10-23 05:37:06.0","2019-10-23 05:37:06.0","2020-10-23 05:37:06.0"]
* | SELECT sequence(1628733298,1628734085,60)
[1628733298,1628733358,1628733418,1628733478,1628733538,1628733598,1628733658,1628733718,1628733778,1628733838,1628733898,1628733958,1628734018,1628734078]
shuffle(x)
パラメータ | 説明 |
x | パラメータ値はarray型です。 |
* | SELECT shuffle(array[1,2,3,4,5])
[5,2,4,1,3]
slice(x, start, length)
パラメータ | 説明 |
x | パラメータ値はarray型です。 |
start | インデックスの開始位置を指定します。 startが負の数の場合、末尾から開始します。 startが正の数の場合、先頭から開始します。 |
length | 指定されたサブセット内の要素数。 |
* | SELECT slice(array[1,2,4,5,6,7,7],3,2)
[4,5]
transform(x, lambda_expression)
パラメータ | 説明 |
x | パラメータ値はarray型です。 |
lambda_expression |
* | SELECT transform(array[5,6],x -> x + 1)
[6,7]
zip(x, y)
パラメータ | 説明 |
x | パラメータ値はarray型です。 |
y | パラメータ値はarray型です。 |
* | SELECT zip(array[1,2], array[3,4])
["{1, 3}","{2, 4}"]
zip_with(x, y, lambda_expression)
パラメータ | 説明 |
x | パラメータ値はarray型です。 |
y | パラメータ値はarray型です。 |
lambda_expression |
(x, y) -> x + yを使用して、配列[1,2]と[3,4]の要素をそれぞれ加算した後、配列型で加算結果を返します。* | SELECT zip_with(array[1,2], array[3,4],(x,y) -> x + y)
[4,6]
フィードバック