h3_compact وظيفه

ينطبق على:وضع علامة Databricks SQL وضع علامة Databricks Runtime 11.3 LTS وما فوق

ضغط مجموعة الإدخال لخلايا H3. تغطي المجموعة المضغوطة نفس مجموعة الخلايا H3 مثل الخلايا الأصلية.

بناء الجملة

h3_compact ( h3CellIdsExpr )

الوسيطات

  • h3CellIdsExpr: صفيف تعبير BIGINTs، أو صفيف من تعبير STRINGs سداسي عشري يمثل صفيفا من معرفات الخلايا H3.

المرتجعات

صفيف معرفات الخلية H3 من نفس نوع القيم في تعبير h3CellIdsExprصفيف الإدخال .

ترجع الدالة NULL إذا كان الإدخال NULL. تقوم الدالة بالتحقق الجزئي فيما إذا كانت وسيطة الإدخال هي معرف خلية H3 صالح. شرط ضروري، ولكن ليس كافيا لمعرف H3 صالح هو أن قيمته بين 0x08001fffffffffff و 0x08ff3b6db6db6db6. سلوك الدالة غير معرف إذا كان أي من معرفات الخلايا في صفيف الإدخال ليس معرف خلية صالحا. يتم تجاهل القيم الخالية في صفيف الإدخال.

حالات الخطأ

  • إذا كانت h3CellIdExpr سلسلة لا يمكن تحويلها إلى BIGINT أو تتوافق مع قيمة BIGINT أصغر من 0x08001fffffffffff أو أكبر من 0x08ff3b6db6db6db6، ترجع الدالة H3_INVALID_CELL_ID.

الأمثلة

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