Fonction h3_compact
S’applique à : Databricks SQL Databricks Runtime 11.3 LTS et versions ultérieures
Compacte le jeu de données d’entrée de cellules H3. L’ensemble compacté couvre le même jeu de cellules H3 que celui d’origine.
Syntaxe
h3_compact ( h3CellIdsExpr )
Arguments
h3CellIdsExpr
: TABLEAU d’expressions BIGINT ou TABLEAU d’expressions STRING hexadécimales représentant un tableau d’ID de cellule H3.
Retours
TABLEAU d’ID de cellule H3 du même type que les valeurs de l’expression ARRAY d’entrée h3CellIdsExpr
.
La fonction retourne NULL si l’entrée est NULL.
La fonction effectue une validation partielle pour déterminer si l’argument d’entrée est un ID de cellule H3 valide. Une valeur d’ID H3 comprise entre 0x08001fffffffffff
et 0x08ff3b6db6db6db6
constitue une condition nécessaire mais pas suffisante.
Le comportement de la fonction n’est pas défini si l’un des ID de cellule du TABLEAU d’entrée ne correspond pas à un ID de cellule valide.
Les valeurs NULL du tableau d’entrée sont ignorées.
Conditions d'erreur
- Si
h3CellIdExpr
correspond à une STRING qui ne peut pas être convertie en BIGINT ou qui correspond à une valeur BIGINT inférieure à0x08001fffffffffff
ou supérieure à0x08ff3b6db6db6db6
, la fonction retourne H3_INVALID_CELL_ID.
Exemples
-- 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