tencent cloud

Cloud Log Service

配列関数

ダウンロード
フォーカスモード
フォントサイズ
最終更新日: 2026-10-12 14:32:16
AI翻訳
本文書では、配列関連関数の構文と例を紹介します。
関数名
ステートメント
意味
[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番目の要素を返すために使用されます。element_at関数と同等です。

構文

[x]

パラメータ説明

パラメータ
説明
x
配列の添字は1から始まります。パラメータ値はbigint型です。

戻り値の型

指定された要素のデータ型を返します。

例

numberフィールド値の2番目の要素を返します。
フィールド例
array:[12,23,26,48,26]
クエリと分析ステートメント
* | SELECT cast(json_parse(array) as array(bigint)) [2]
クエリと分析結果
23

array_agg関数

array_agg関数は、x内のすべての値を配列形式で返します。

構文

array_agg(x)

パラメータ説明

パラメータ
説明
x
パラメータ値は任意のデータ型です。

戻り値の型

array型。

例

配列形式でstatusフィールドの値を返します。
クエリと分析ステートメント
* | SELECT array_agg(status) AS array
クエリと分析結果
[200,200,200,404,200,200]

array_distinct関数

array_distinct関数は、配列内の重複する要素を削除するために使用します。

構文

array_distinct(x)

パラメータ説明

パラメータ
説明
x
パラメータ値はarray型です。

戻り値の型

array型。

例

arrayフィールド値内の重複する要素を削除します。
フィールド例
array:[12,23,26,48,26]
クエリと分析ステートメント
* | SELECT array_distinct(cast(json_parse(array) as array(bigint)))
クエリと分析結果
[12,23,26,48]

array_except関数

array_except関数は、2つの配列の差集合を計算するために使用します。

構文

array_except(x, y)

パラメータ説明

パラメータ
説明
x
パラメータ値はarray型です。
y
パラメータ値はarray型です。

戻り値の型

array型。

例

配列[1、2、3、4、5]と[1、3、5、7]の差集合を計算します。
クエリと分析ステートメント
* | SELECT array_except(array[1,2,3,4,5],array[1,3,5,7])
クエリと分析結果
[2,4]

array_intersect関数

array_intersect関数は、2つの配列の積集合を計算するために使用します。

構文

array_intersect(x, y)

パラメータ説明

パラメータ
説明
x
パラメータ値はarray型です。
y
パラメータ値はarray型です。

戻り値の型

array型。

例

配列[1、2、3、4、5]と[1、3、5、7]の積集合を計算します。
クエリと分析ステートメント
* | SELECT array_intersect(array[1,2,3,4,5],array[1,3,5,7])
クエリと分析結果
[1,3,5]

array_join関数

array_join関数は、指定された区切り文字を使用して、配列内の要素を1つの文字列に連結します。

構文

指定された区切り文字を使用して、配列内の要素を1つの文字列に連結します。配列にnull要素が含まれている場合、null要素は無視されます。
array_join(x, delimiter)
指定された区切り文字を使用して、配列内の要素を1つの文字列に連結します。配列にnull要素が含まれている場合、null要素はnull_replacementに置き換えられます。
array_join(x, delimiter, null_replacement)

パラメータ説明

パラメータ
説明
x
パラメータ値はarray型です。
delimiter
区切り文字は、文字列にすることができます。
null_replacement
null要素を置き換えるための文字列。

戻り値の型

varchar型。

例

スペースを使用して、配列[null, '中国','sh']内の要素を1つの文字列に連結します。null要素は「region」に置き換えられます。
クエリと分析ステートメント
* | SELECT array_join(array[null,'中国','sh'],'/','region')
クエリと分析結果
region/中国/sh

array_max関数

array_max関数は、配列内の最大値を取得するために使用されます。

構文

array_max(x)

パラメータ説明

パラメータ
説明
x
パラメータ値はarray型です。

戻り値の型

パラメータ値内の要素のデータ型と一致します。

例

配列[12,23,26,48,26]内の最大値48を取得します。
フィールド例
array:[12,23,26,48,26]
クエリと分析ステートメント
* | SELECT array_max(try_cast(json_parse(array) as array(bigint))) AS max_number
クエリと分析結果
48

array_min関数

array_min関数は、配列内の最小値を取得するために使用されます。

構文

array_min(x)

パラメータ説明

パラメータ
説明
x
パラメータ値はarray型です。

戻り値の型

パラメータ値内の要素のデータ型と一致します。

例

配列[12,23,26,48,26]内の最小値12を取得します。
フィールド例
array:[12,23,26,48,26]
クエリと分析ステートメント
* | SELECT array_min(try_cast(json_parse(array) as array(bigint))) AS min_number
クエリと分析結果
12

array_position関数

array_position関数は、指定された要素の添字を取得するために使用されます。添字は1から始まります。指定された要素が存在しない場合は、0を返します。

構文

array_position(x, element)

パラメータ説明

パラメータ
説明
x
パラメータ値は配列型です。
element
配列内の1つの要素。

戻り値の型

bigint型。

例

配列[23,46,35]内の46の添字を返します。
クエリと分析ステートメント
* | SELECT array_position(array[23,46,35],46)
クエリと分析結果
2

array_remove関数

array_remove関数は、配列内の指定された要素を削除するために使用します。

構文

array_remove(x, element)

パラメータ説明

パラメータ
説明
x
パラメータ値は配列型です。
element
配列内の1つの要素。

戻り値の型

array型。

例

配列[23,46,35]から23を削除します。
クエリと分析ステートメント
* | SELECT array_remove(array[23,46,35],23)
クエリと分析結果
[46,35]

array_sort関数

array_sort関数は、配列要素を昇順にソートするために使用します。

構文

array_sort(x)

パラメータ説明

パラメータ
説明
x
パラメータ値はarray型です。

戻り値の型

array型。

例

配列['b', 'd', null, 'c', 'a']を昇順にソートします。
クエリと分析ステートメント
* | SELECT array_sort(array['b','d',null,'c','a'])
クエリと分析結果
["a","b","c","d",null]

array_union関数

array_union関数は、2つの配列の和集合を計算するために使用します。

構文

array_union(x, y)

パラメータ説明

パラメータ
説明
x
パラメータ値はarray型です。
y
パラメータ値はarray型です。

戻り値の型

array型。

例

配列[1,2,3,4,5]と[1,3,5,7]の和集合を計算します。
クエリと分析ステートメント
* | SELECT array_union(array[1,2,3,4,5],array[1,3,5,7])
クエリと分析結果
[1,2,3,4,5,7]

cardinality関数

cardinality関数は、配列内の要素数を計算するために使用します。

構文

cardinality(x)

パラメータ説明

パラメータ
説明
x
パラメータ値はarray型です。

戻り値の型

bigint型。

例

numberフィールド値内の要素数を計算します。
フィールド例
array:[12,23,26,48,26]
クエリと分析ステートメント
* | SELECT cardinality(cast(json_parse(array) as array(bigint)))
クエリと分析結果
5

concat関数

concat関数は、複数の配列を1つの配列に連結するために使用します。

構文

concat(x, y...)

パラメータ説明

パラメータ
説明
x
パラメータ値はarray型です。
y
パラメータ値はarray型です。

戻り値の型

array型。

例

配列['red','blue']と['yellow','green']を1つの配列に連結します。
クエリと分析ステートメント
* | SELECT concat(array['red','blue'],array['yellow','green'])
クエリと分析結果
["red","blue","yellow","green"]

contains関数

contains関数は、配列に指定された要素が含まれているかどうかを判断するために使用します。含まれている場合はtrueを返します。

構文

contains(x, element)

パラメータ説明

パラメータ
説明
x
パラメータ値は配列型です。
element
配列内の1つの要素。

戻り値の型

boolean型。

例

arrayフィールド値に23が含まれているかどうかを判断します。
フィールド例
array:[12,23,26,48,26]
クエリと分析ステートメント
* | SELECT contains(cast(json_parse(array) as array(varchar)),'23')
クエリと分析結果
TRUE

element_at関数

element_at関数は、配列内のy番目の要素を返すために使用されます。

構文

element_at(x, y)

パラメータ説明

パラメータ
説明
x
パラメータ値はarray型です。
element
配列の添字は1から始まります。パラメータ値はbigint型です。

戻り値の型

任意のデータ型。

例

numberフィールド値の2番目の要素を返します。
フィールド例
array:[12,23,26,48,26]
クエリと分析ステートメント
* | SELECT element_at(cast(json_parse(number) AS array(varchar)), 2)
クエリと分析結果
23

filter関数

filter関数とLambda式を組み合わせて、配列内の要素をフィルタリングします。Lambda式を満たす要素のみを返します。

構文

filter(x, lambda_expression)

パラメータ説明

パラメータ
説明
x
パラメータ値はarray型です。
lambda_expression
Lambda式。詳細については、Lambda関数をご参照ください。

戻り値の型

array型。

例

配列[5,-6,null,7]から0より大きい要素を返します。ここで、x -> x > 0はLambda式です。
クエリと分析ステートメント
* | SELECT filter(array[5,-6,null,7],x -> x > 0)
クエリと分析結果
[5,7]

flatten関数

flatten関数は、2次元配列を1次元配列に変換するために使用されます。

構文

flatten(x)

パラメータ説明

パラメータ
説明
x
パラメータ値はarray型です。

戻り値の型

array型。

例

配列array[1,2,3,4]とarray[4,3,2,1]を1次元配列に変換します。
クエリと分析ステートメント
* | SELECT flatten(array[array[1,2,3,4],array[4,3,2,1]])
クエリと分析結果
[1,2,3,4,4,3,2,1]

reduce関数

reduce関数は、Lambda式の定義に従って、配列内の各要素を加算し、計算結果を返します。

構文

reduce(x, lambda_expression)

パラメータ説明

パラメータ
説明
x
パラメータ値はarray型です。
lambda_expression
Lambda式。詳細については、Lambda関数をご参照ください。

戻り値の型

bigint型。

例

配列[5, 20, 50]の各要素を加算した結果を返します。
クエリと分析ステートメント
* | SELECT reduce(array[5,20,50],0,(s, x) -> s + x, s -> s)
クエリと分析結果
75

reverse関数

reverse関数は、配列内の要素を逆順に並べ替えるために使用します。

構文

reverse(x)

パラメータ説明

パラメータ
説明
x
パラメータ値はarray型です。

戻り値の型

array型。

例

配列[1,2,3,4,5]の要素を逆順に並べ替えます。
クエリと分析ステートメント
* | SELECT reverse(array[1,2,3,4,5])
クエリと分析結果
[5,4,3,2,1]

sequence関数

sequence関数は、指定された開始値に基づいて配列を返します。その要素は、開始値の範囲内にある連続した増加値です。

構文

増加間隔はデフォルト値の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日であることを表します。

戻り値の型

array型。

例

例1:0から10までの偶数を返します。
クエリと分析ステートメント
* | SELECT sequence(0,10,2)
クエリと分析結果
[0,2,4,6,8,10]
例2:2017-10-23から2021-08-12までの日付を返します。間隔は1年です。
クエリと分析ステートメント
* | 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"]
例3:1628733298,1628734085の間のUnixタイムスタンプを返します。間隔は60秒です。
クエリと分析ステートメント
* | SELECT sequence(1628733298,1628734085,60)
クエリと分析結果
[1628733298,1628733358,1628733418,1628733478,1628733538,1628733598,1628733658,1628733718,1628733778,1628733838,1628733898,1628733958,1628734018,1628734078]

shuffle関数

shuffle関数は、配列要素をランダムに並べ替えるために使用されます。

構文

shuffle(x)

パラメータ説明

パラメータ
説明
x
パラメータ値はarray型です。

戻り値の型

array型。

例

配列[1,2,3,4,5]の要素をランダムに並べ替えます。
クエリと分析ステートメント
* | SELECT shuffle(array[1,2,3,4,5])
クエリと分析結果
[5,2,4,1,3]

slice関数

slice関数は、配列のサブセットを返すために使用されます。

構文

slice(x, start, length)

パラメータ説明

パラメータ
説明
x
パラメータ値はarray型です。
start
インデックスの開始位置を指定します。
startが負の数の場合、末尾から開始します。
startが正の数の場合、先頭から開始します。
length
指定されたサブセット内の要素数。

戻り値の型

array型。

例

配列[1,2,4,5,6,7,7]のサブセットを返します。3番目の要素から返し、サブセットの要素数は2です。
クエリと分析ステートメント
* | SELECT slice(array[1,2,4,5,6,7,7],3,2)
クエリと分析結果
[4,5]

transform関数

transform関数は、Lambda式を配列の各要素に適用するために使用されます。

構文

transform(x, lambda_expression)

パラメータ説明

パラメータ
説明
x
パラメータ値はarray型です。
lambda_expression
Lambda式。詳細については、Lambda関数をご参照ください。

戻り値の型

array型。

例

配列[5,6]の各要素に1を加算してから返します。
クエリと分析ステートメント
* | SELECT transform(array[5,6],x -> x + 1)
クエリと分析結果
[6,7]

zip関数

zip関数は複数の配列を1つの2次元配列に結合し、各配列で同じインデックスを持つ要素が新しい配列を構成します。

構文

zip(x, y)

パラメータ説明

パラメータ
説明
x
パラメータ値はarray型です。
y
パラメータ値はarray型です。

戻り値の型

array型。

例

配列[1,2]と[3,4]を1つの2次元配列に結合します。
クエリと分析ステートメント
* | SELECT zip(array[1,2], array[3,4])
クエリと分析結果
["{1, 3}","{2, 4}"]

zip_with関数

zip_with関数はLambda式の定義に基づいて、2つの配列を1つの配列に結合します。

構文

zip_with(x, y, lambda_expression)

パラメータ説明

パラメータ
説明
x
パラメータ値はarray型です。
y
パラメータ値はarray型です。
lambda_expression
Lambda式。詳細については、Lambda関数をご参照ください。

戻り値の型

array型。

例

Lambda式(x, y) -> x + yを使用して、配列[1,2]と[3,4]の要素をそれぞれ加算した後、配列型で加算結果を返します。
クエリと分析ステートメント
* | SELECT zip_with(array[1,2], array[3,4],(x,y) -> x + y)
クエリと分析結果
[4,6]


ヘルプとサポート

この記事はお役に立ちましたか?

フィードバック