h3_compact
işlevi
Şunlar için geçerlidir: Databricks SQL 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 h3CellIdsExpr
değ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 0x08ff3b6db6db6db6
arası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ük0x08ff3b6db6db6db6
bir 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