Función h3_compact
Se aplica a: Databricks SQL Databricks Runtime 11.3 LTS y versiones posteriores
Compacta el conjunto de entrada de las celdas H3. El conjunto compactado cubre el mismo conjunto de celdas H3 que el original.
Sintaxis
h3_compact ( h3CellIdsExpr )
Argumentos
h3CellIdsExpr
: una matriz de expresiones BIGINT o una matriz de expresiones de cadena hexadecimal que representa una matriz de identificadores de celda H3.
Devoluciones
Matriz de identificadores de la celda H3 del mismo tipo que los valores de la expresión de la matriz de entrada h3CellIdsExpr
.
La función devuelve NULL si la entrada es NULL.
La función realiza una validación parcial con respecto a si el argumento de entrada es un identificador de celda H3 válido. Una condición necesaria, pero no suficiente para un identificador H3 válido es que su valor está entre 0x08001fffffffffff
y 0x08ff3b6db6db6db6
.
El comportamiento de la función no está definido si cualquiera de los identificadores de celda de la matriz de entrada no es un identificador de celda válido.
Los valores NULL de la matriz de entrada se omiten.
Condiciones de error
- Si
h3CellIdExpr
es una cadena que no se puede convertir en BIGINT o corresponde a un valor BIGINT menor que0x08001fffffffffff
o mayor que0x08ff3b6db6db6db6
, la función devuelve H3_INVALID_CELL_ID.
Ejemplos
-- 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