distinctJSONPathsAndTypes
استُحدثت في: v24.9.0
تحسب قائمة المسارات الفريدة وأنواعها المخزَّنة في عمود JSON.
البنية
distinctJSONPathsAndTypes(json)المعاملات
json— عمود JSON.JSON
القيمة المُعادة
تُرجع خريطة مرتبة للمسارات والأنواع. Map(String, Array(String))
أمثلة
الاستخدام الأساسي مع أنواع مختلطة
DROP TABLE IF EXISTS test_json;
CREATE TABLE test_json(json JSON) ENGINE = Memory;
INSERT INTO test_json VALUES ('{"a" : 42, "b" : "Hello"}'), ('{"b" : [1, 2, 3], "c" : {"d" : {"e" : "2020-01-01"}}}'), ('{"a" : 43, "c" : {"d" : {"f" : [{"g" : 42}]}}}');
SELECT distinctJSONPathsAndTypes(json) FROM test_json;┌─distinctJSONPathsAndTypes(json)───────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ {'a':['Int64'],'b':['Array(Nullable(Int64))','String'],'c.d.e':['Date'],'c.d.f':['Array(JSON(max_dynamic_types=16, max_dynamic_paths=256))']} │
└───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘مع مسارات JSON المُصرَّح بها
DROP TABLE IF EXISTS test_json;
CREATE TABLE test_json(json JSON(a UInt32)) ENGINE = Memory;
INSERT INTO test_json VALUES ('{"b" : "Hello"}'), ('{"b" : "World", "c" : [1, 2, 3]}');
SELECT distinctJSONPathsAndTypes(json) FROM test_json;┌─distinctJSONPathsAndTypes(json)────────────────────────────────┐
│ {'a':['UInt32'],'b':['String'],'c':['Array(Nullable(Int64))']} │
└────────────────────────────────────────────────────────────────┘