Sdílet prostřednictvím


Funkce h3_uncompact

Platí pro: zaškrtnutí označeného ano Databricks SQL zaškrtnutí označeného ano Databricks Runtime 11.3 LTS a vyšší

Nerozkompaktuje vstupní sadu buněk H3 na zadané rozlišení. Nekompatibilní sada pokrývá stejnou sadu buněk H3 jako původní pomocí buněk v zadaném rozlišení.

Syntaxe

h3_uncompact ( h3CellIdsExpr, resolutionExpr )

Argumenty

  • h3CellIdsExpr: POLE výrazu BIGINTs nebo pole šestnáctkového výrazu STRING představující pole ID buněk H3.
  • resolutionExpr: Výraz INTEGER, jehož hodnota by měla být mezi maximálním rozlišením vstupních buněk H3 a 15 včetně, určující rozlišení ID buněk H3 ve výstupním poli.

Návraty

POLE hodnot stejného typu jako hodnoty ve vstupním výrazu h3cellIdsExprARRAY . Rozlišení ID buněk H3 ve výstupním POLI se rovná hodnotě resolutionExpr.

Funkce vrátí hodnotu NULL, pokud je vstup NULL. Funkce provádí částečné ověření týkající se toho, jestli je vstupním argumentem platné ID buňky H3. Nezbytným, ale ne dostatečným předpokladem platného ID H3 je, že jeho hodnota je mezi 0x08001fffffffffff a 0x08ff3b6db6db6db6. Chování funkce není definováno, pokud některá z ID buněk ve vstupním poli není platným ID buňky. Hodnoty NULL ve vstupním poli jsou ignorovány.

Chybové podmínky

  • Pokud h3CellIdExpr je řetězec, který nelze převést na BIGINT nebo odpovídá hodnotě BIGINT, která je menší nebo větší než 0x08001fffffffffff 0x08ff3b6db6db6db6, vrátí funkce H3_INVALID_CELL_ID.
  • Pokud resolutionExpr je menší než maximální rozlišení buňky H3 ve vstupním poli nebo větší než 15, vrátí funkce H3_INVALID_RESOLUTION_VALUE.

Příklady

-- Example where the input is an ARRAY of BIGINTs
> SELECT h3_uncompact(ARRAY(599686030622195711,599686015589810175,599686014516068351,599686034917163007,599686029548453887,599686032769679359,599686198125920255,599686023106002943,599686027400970239,599686013442326527,599686012368584703,599686018811035647,595182446027210751), 5);
  [599686030622195711,599686015589810175,599686014516068351,599686034917163007,599686029548453887,599686032769679359,599686198125920255,599686023106002943,599686027400970239,599686013442326527,599686012368584703,599686018811035647,599686038138388479,599686039212130303,599686040285872127,599686041359613951,599686042433355775,599686043507097599,599686044580839423]

-- In this example we verify that uncompacting the compacted set of the 2-ring of an H3 cell at the cell’s resolution returns the original 2-ring.
> SELECT COUNT(*) FROM ((SELECT explode(h3_uncompact(h3_compact(h3_kring(599686042433355775, 2)), h3_resolution(599686042433355775)))) MINUS (SELECT  explode(h3_kring(599686042433355775, 2))))
  0

-- Second input is an invalid resolution value.
> SELECT h3_uncompact(ARRAY(599686030622195711,599686015589810175,599686014516068351,599686034917163007,599686029548453887,599686032769679359,599686198125920255,599686023106002943,599686027400970239,599686013442326527,599686012368584703,599686018811035647,595182446027210751), 2);
  [H3_INVALID_RESOLUTION_VALUE] H3 resolution 2 must be between 5 and 15, inclusive