配列関数とは、OceanBaseデータベースシステムが提供する、配列データを処理するために特別に設計された一連の関数です。これらの関数により、ユーザーは複雑な配列クエリや分析を実行できます。
以下は、OceanBaseの配列関数とその用途の概要です:
配列関数タイプ
| 配列関数タイプ | 説明 |
|---|---|
| 配列コンストラクタ | 新しい配列データ型を構築するための関数です。 |
| 配列判定関数 | 入力された配列データに対して論理的な判断を行い、ブール値を返す関数です。 |
| 配列出力関数 | 入力された配列データを出力し、出力後の配列データを返します。 |
| 配列操作関数 | 入力された配列データに対して、要素の追加、削除、検索などの基本的な操作を行い、操作後の配列データを返します。 |
配列関数の概要
OceanBaseデータベースが現在サポートしているすべての配列関数は以下のとおりです:
| 関数タイプ | 関数名 | 説明 |
|---|---|---|
| 配列コンストラクタ | array | 配列データを構築するために使用されます。 |
| 配列コンストラクタ | rb_build | 整数型の配列データを効率的な圧縮ビットマップデータ(RoaringBitmap)に変換するために使用されます。 |
| 演算子 | [] | 配列データを構築するために使用されます。 |
| 配列判定関数 | array_contains | 配列に特定の要素が含まれているかどうかを判定します。 |
| 配列判定関数 | array_contains_all | 入力された配列が別の配列のすべての要素を含んでいるかどうかを判定します。 |
| 配列判定関数 | array_overlaps | 2つの配列に交差部分が存在するかどうかを判定します。 |
| 演算子 | ANY | 配列に特定の要素が含まれているかどうかを判定します。これは、array_contains()関数と同じ機能です。 |
| 配列出力関数 | array_to_string | 配列を文字列に変換します。具体的には、指定された区切り文字と空要素記号に基づいて、配列内のすべての基本要素を文字列として出力します。 |
| 配列操作関数 | array_append | ターゲット配列に指定された要素を追加します。 |
| 配列操作関数 | array_distinct | ターゲット配列から重複する要素を削除します。 |
| 配列操作関数 | array_remove | ターゲット配列から指定された要素を削除します。 |
| 配列操作関数 | cardinality | ターゲット配列の基本要素の数を返します。 |
| 配列操作関数 | element_at | インデックスに基づいて、ターゲット配列の指定された位置の要素を返します。 |
| 配列操作関数 | string_to_array | 指定された区切り文字に基づいて、文字列を文字列配列に分割します。 |
| 配列操作関数 | array_agg | 指定された列上の複数行のデータを1つの配列値に集約し、結果を返します。 |
| 配列操作関数 | unnest | 配列内の要素を複数行に展開し、それらの要素を含むリレーショナルテーブルを返します。 |
| 配列操作関数 | array_prepend | 配列の先頭に要素を追加し、新しい配列を返します。 |
| 配列操作関数 | array_concat | 複数の配列を結合し、新しい配列を返します。 |
| 配列操作関数 | array_compact | 配列内の連続する重複要素を削除し、新しい配列を返します。 |
| 配列操作関数 | array_sort | 配列を昇順でソートし、ソート時にNULL値を配列の最後に配置します。 |
| 配列操作関数 | array_length | 配列の長さを返します。ネストされた配列の場合、返されるのは最初の層の配列の長さです。 |
| 配列操作関数 | array_range | 等差数列配列を生成するために使用されます。 |
| 配列操作関数 | array_sum | 配列内のすべての要素の合計を計算します。 |
| 配列操作関数 | array_diffrence | 配列内の隣接する2つの要素の差分を計算し、結果を新しい配列に格納して返します。 |
| 配列操作関数 | array_min | 配列内の最小値を返します。NULL値は無視されます。 |
| 配列操作関数 | array_max | 配列内の最大値を返します。NULL値は無視されます。 |
| 配列操作関数 | array_avg | 配列内のすべての要素の平均値を返します。NULL値は0として計算されます。 |
| 配列操作関数 | array_position | 配列内の指定された要素の位置を検索します。 |
| 配列操作関数 | array_slice | 配列の指定された位置から一部の要素を抽出し、抽出された要素を新しい配列として返します。 |
| 配列操作関数 | reverse | 配列内の要素を逆順に並べ替えます。ネストされた配列の場合、最初の層の要素を逆順に並べ替えます。 |
| 配列操作関数 | array_map | 入力された各配列の要素をLambda関数に従って変換し、各変換後に得られるすべての新しい要素を1つの新しい配列として出力結果として合成します。 |
| 配列操作関数 | array_filter | Lambda関数の戻り値に基づいて、配列内の要素をフィルタリングするかどうかを決定します。 |
| 配列操作関数 | array_sortby | 指定されたLambda関数に基づいて、配列をソートします。 |
| 配列操作関数 | array_first | 指定されたLambda関数の戻り値が0以外の配列内の最初の要素を返します。 |