Aracılığıyla paylaş


h3_compact işlevi

Şunlar için geçerlidir:onay işareti evet olarak işaretlenmiş Databricks SQL onay işareti evet olarak işaretlenmiş Databricks Runtime 11.3 LTS ve üzeri

H3 hücrelerinin giriş kümesini sıkıştırıyor. Sıkıştırılmış küme, özgün hücreyle aynı H3 hücre kümesini kapsar.

Söz dizimi

h3_compact ( h3CellIdsExpr )

Bağımsız değişkenler

  • h3CellIdsExpr: H3 hücre kimlikleri dizisini temsil eden bir BIGINTs dizisi veya onaltılık STRING dizisi ifadesi.

Döndürülenler

ARRAY ifadesindeki h3CellIdsExprdeğerlerle aynı türde H3 hücre kimlikleri dizisi.

Giriş NULL ise işlev NULL döndürür. İşlev, giriş bağımsız değişkeninin geçerli bir H3 hücre kimliği olup olmadığıyla ilgili kısmi doğrulama yapar. Geçerli bir H3 kimliği için gerekli ancak yeterli olmayan bir koşul, değerinin ile 0x08ff3b6db6db6db6arasında 0x08001fffffffffff olmasıdır. GIRIŞ DIZIsindeki hücre kimliklerinden herhangi biri geçerli bir hücre kimliği değilse işlevin davranışı tanımlanmamıştır. Giriş dizisindeki NULL değerler yoksayılır.

Hata koşulları

  • BIR BIGINT'e dönüştürülemeyen veya değerinden küçük 0x08001fffffffffff veya daha büyük 0x08ff3b6db6db6db6bir BIGINT değerine karşılık gelen bir STRING iseh3CellIdExpr, işlev H3_INVALID_CELL_ID döndürür.

Örnekler

-- 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