h3_compact
関数
適用対象: Databricks SQL Databricks Runtime 11.3 LTS 以降
H3 セルの入力セットを圧縮します。 圧縮されたセットは、元のセットと同じ H3 セルのセットをカバーします。
構文
h3_compact ( h3CellIdsExpr )
引数
h3CellIdsExpr
: H3 セル ID の配列を表す BIGINT 式の配列または 16 進数の STRING 式の配列。
戻り値
入力配列式 h3CellIdsExpr
の値と同じ型の H3 セル ID の配列。
入力が NULL の場合、この関数は NULL を返します。
この関数は、入力引数が有効な H3 セル ID であるかどうかに関する部分的な検証を行います。 有効な H3 ID の必要条件 (ただし、十分条件ではない) は、その値が 0x08001fffffffffff
と 0x08ff3b6db6db6db6
の間にあることです。
入力配列内のいずれかのセル ID が有効なセル ID でない場合、関数の動作は未定義です。
入力配列内の NULL 値は無視されます。
エラー条件
h3CellIdExpr
が BIGINT に変換できない STRING の場合、または、0x08001fffffffffff
より小さいか0x08ff3b6db6db6db6
より大きい BIGINT 値に対応する STRING の場合、関数は H3_INVALID_CELL_ID を返します。
例
-- Example where the input is an ARRAY of BIGINTs
> SELECT h3_compact(ARRAY(599686042433355775,599686030622195711,599686044580839423,599686038138388479,599686043507097599,599686015589810175,599686014516068351,599686034917163007,599686029548453887,599686032769679359,599686198125920255,599686040285872127,599686041359613951,599686039212130303,599686023106002943,599686027400970239,599686013442326527,599686012368584703,599686018811035647));
[599686030622195711,599686015589810175,599686014516068351,599686034917163007,599686029548453887,599686032769679359,599686198125920255,599686023106002943,599686027400970239,599686013442326527,599686012368584703,599686018811035647,595182446027210751]
-- Example where the input is an ARRAY of hexadecimal STRINGs
> SELECT h3_compact(ARRAY('85283473fffffff', '85283447fffffff', '8528347bfffffff', '85283463fffffff', '85283477fffffff', '8528340ffffffff', '8528340bfffffff', '85283457fffffff', '85283443fffffff', '8528344ffffffff', '852836b7fffffff', '8528346bfffffff', '8528346ffffffff', '85283467fffffff', '8528342bfffffff', '8528343bfffffff', '85283407fffffff', '85283403fffffff', '8528341bfffffff'));
[85283447fffffff, 8528340ffffffff, 8528340bfffffff, 85283457fffffff, 85283443fffffff, 8528344ffffffff, 852836b7fffffff, 8528342bfffffff, 8528343bfffffff, 85283407fffffff, 85283403fffffff, 8528341bfffffff, 8428347ffffffff]
-- Example where the input ARRAY consists of a single element (and thus cannot be compacted further).
> SELECT h3_compact(ARRAY('85283473fffffff'));
[85283473fffffff]
-- Example where we compare the size of the 2-ring of an H3 cell with its compacted version.
> SELECT ARRAY_SIZE(h3_kring(599686042433355775, 2)), ARRAY_SIZE(h3_compact(h3_kring(599686042433355775, 2)))
19 13
-- Example where one of the cell IDs is out of range.
> SELECT h3_compact(ARRAY(599686042433355775, 0))
[H3_INVALID_CELL_ID] 0 is not a valid H3 cell ID