h3_compact
-functie
Van toepassing op: Databricks SQL Databricks Runtime 11.3 LTS en hoger
Hiermee wordt de invoerset van H3-cellen gecomprimeerd. De gecomprimeerde set dekt dezelfde set H3-cellen als de oorspronkelijke.
Syntaxis
h3_compact ( h3CellIdsExpr )
Argumenten
-
h3CellIdsExpr
: Een MATRIX van BIGINTs-expressie of een MATRIX van hexadecimale STRING-expressie die een matrix van H3-cel-id's vertegenwoordigt.
Retouren
Een MATRIX van H3-cel-id's van hetzelfde type als de waarden in de invoerMATRIX-expressie h3CellIdsExpr
.
De functie retourneert NULL als de invoer NULL is.
De functie voert gedeeltelijke validatie uit met betrekking tot of het invoerargument een geldige H3-cel-id is. Een noodzakelijke, maar niet voldoende voorwaarde voor een geldige H3-id is dat de waarde tussen 0x08001fffffffffff
en 0x08ff3b6db6db6db6
.
Het gedrag van de functie is niet gedefinieerd als een van de cel-id's in de invoerMATRIX geen geldige cel-id is.
NULL-waarden in de invoermatrix worden genegeerd.
Foutvoorwaarden
- Als
h3CellIdExpr
dit een TEKENREEKS is die niet kan worden geconverteerd naar een BIGINT of overeenkomt met een BIGINT-waarde die kleiner is dan0x08001fffffffffff
of groter0x08ff3b6db6db6db6
is, retourneert de functie H3_INVALID_CELL_ID.
Voorbeelden
-- 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