Bitmap 関数
このページでは、TiDB Cloud Lake の Bitmap 関数について、参照しやすいように機能別に整理して包括的に説明します。
Bitmap の演算
| 関数 | 説明 | 例 |
|---|---|---|
| BITMAP_AND | 2 つのビットマップに対してビット単位の AND 演算を実行します | BITMAP_AND(BUILD_BITMAP([1,4,5]), BUILD_BITMAP([4,5])) → {4,5} |
| BITMAP_OR | 2 つのビットマップに対してビット単位の OR 演算を実行します | BITMAP_OR(BUILD_BITMAP([1,2]), BUILD_BITMAP([2,3])) → {1,2,3} |
| BITMAP_XOR | 2 つのビットマップに対してビット単位の XOR 演算を実行します | BITMAP_XOR(BUILD_BITMAP([1,2,3]), BUILD_BITMAP([2,3,4])) → {1,4} |
| BITMAP_NOT | ビットマップに対してビット単位の NOT 演算を実行します | BITMAP_NOT(BUILD_BITMAP([1,2,3]), 5) → {0,4} |
| BITMAP_AND_NOT | 1 つ目のビットマップに含まれ、2 つ目のビットマップには含まれない要素を返します | BITMAP_AND_NOT(BUILD_BITMAP([1,2,3]), BUILD_BITMAP([2,3])) → {1} |
| BITMAP_UNION | 複数のビットマップを 1 つに結合します | BITMAP_UNION([BUILD_BITMAP([1,2]), BUILD_BITMAP([2,3])]) → {1,2,3} |
| BITMAP_INTERSECT | 複数のビットマップの共通部分を返します | BITMAP_INTERSECT([BUILD_BITMAP([1,2,3]), BUILD_BITMAP([2,3,4])]) → {2,3} |
Bitmap の情報
| 関数 | 説明 | 例 |
|---|---|---|
| BITMAP_COUNT | ビットマップ内の要素数を返します | BITMAP_COUNT(BUILD_BITMAP([1,2,3])) → 3 |
| BITMAP_CONTAINS | ビットマップに特定の要素が含まれているかを確認します | BITMAP_CONTAINS(BUILD_BITMAP([1,2,3]), 2) → true |
| BITMAP_HAS_ANY | ビットマップに別のビットマップの要素が 1 つでも含まれているかを確認します | BITMAP_HAS_ANY(BUILD_BITMAP([1,2,3]), BUILD_BITMAP([3,4])) → true |
| BITMAP_HAS_ALL | ビットマップに別のビットマップのすべての要素が含まれているかを確認します | BITMAP_HAS_ALL(BUILD_BITMAP([1,2,3]), BUILD_BITMAP([2,3])) → true |
| BITMAP_MIN | ビットマップ内の最小要素を返します | BITMAP_MIN(BUILD_BITMAP([1,2,3])) → 1 |
| BITMAP_MAX | ビットマップ内の最大要素を返します | BITMAP_MAX(BUILD_BITMAP([1,2,3])) → 3 |
| BITMAP_CARDINALITY | ビットマップ内の要素数を返します | BITMAP_CARDINALITY(BUILD_BITMAP([1,2,3])) → 3 |
Bitmap のカウント演算
| 関数 | 説明 | 例 |
|---|---|---|
| BITMAP_AND_COUNT | 2 つのビットマップのビット単位 AND の要素数を返します | BITMAP_AND_COUNT(BUILD_BITMAP([1,2,3]), BUILD_BITMAP([2,3,4])) → 2 |
| BITMAP_OR_COUNT | 2 つのビットマップのビット単位 OR の要素数を返します | BITMAP_OR_COUNT(BUILD_BITMAP([1,2]), BUILD_BITMAP([2,3])) → 3 |
| BITMAP_XOR_COUNT | 2 つのビットマップのビット単位 XOR の要素数を返します | BITMAP_XOR_COUNT(BUILD_BITMAP([1,2,3]), BUILD_BITMAP([2,3,4])) → 2 |
| BITMAP_NOT_COUNT | ビットマップのビット単位 NOT の要素数を返します | BITMAP_NOT_COUNT(BUILD_BITMAP([1,2,3]), 5) → 2 |
| INTERSECT_COUNT | 複数のビットマップの共通部分の要素数を返します | INTERSECT_COUNT([BUILD_BITMAP([1,2,3]), BUILD_BITMAP([2,3,4])]) → 2 |
Bitmap の部分集合演算
| 関数 | 説明 | 例 |
|---|---|---|
| SUB_BITMAP | ビットマップの部分集合を抽出します | SUB_BITMAP(BUILD_BITMAP([1,2,3,4,5]), 1, 3) → {2,3,4} |
| BITMAP_SUBSET_IN_RANGE | 範囲内のビットマップの部分集合を返します | BITMAP_SUBSET_IN_RANGE(BUILD_BITMAP([1,2,3,4,5]), 2, 4) → {2,3} |
| BITMAP_SUBSET_LIMIT | 制限付きでビットマップの部分集合を返します | BITMAP_SUBSET_LIMIT(BUILD_BITMAP([1,2,3,4,5]), 2, 2) → {3,4} |