Função h3_compact
Aplica-se a: Databricks SQL Databricks Runtime 11.3 LTS e superior
Compacta o conjunto de entrada de células H3. O conjunto compactado cobre o mesmo conjunto de células H3 que o original.
Sintaxe
h3_compact ( h3CellIdsExpr )
Argumentos
h3CellIdsExpr
: Uma expressão ARRAY de BIGINTs ou uma expressão ARRAY de STRINGs hexadecimais representando uma matriz de IDs de célula H3.
Devoluções
Um ARRAY de IDs de célula H3 do mesmo tipo que os valores na expressão h3CellIdsExpr
ARRAY de entrada.
A função retorna NULL se a entrada for NULL.
A função faz validação parcial em relação a se o argumento de entrada é um ID de célula H3 válido. Uma condição necessária, mas não suficiente, para um ID H3 válido é que seu valor esteja entre 0x08001fffffffffff
e 0x08ff3b6db6db6db6
.
O comportamento da função é indefinido se qualquer um dos IDs de célula na entrada ARRAY não é um ID de célula válido.
Os valores NULL na matriz de entrada são ignorados.
Condições de erro
- Se
h3CellIdExpr
for um STRING que não pode ser convertido em um BIGINT ou corresponder a um valor BIGINT menor0x08001fffffffffff
ou maior que0x08ff3b6db6db6db6
, a função retornará H3_INVALID_CELL_ID.
Exemplos
-- 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