Перейти к основному содержанию

distinctJSONPathsAndTypes

Добавленный в: v24.9.0 Вычисляет список уникальных путей и их типов, хранящихся в столбце JSON.
Если объявление JSON содержит пути с указанными типами, эти пути всегда будут включаться в результат функций distinctJSONPaths/distinctJSONPathsAndTypes, даже если во входных данных не было значений для этих путей.
Синтаксис
distinctJSONPathsAndTypes(json)
Аргументы
  • json — JSON-столбец. JSON
Возвращаемое значение Возвращает отсортированное отображение путей и типов. Map(String, Array(String)) Примеры Базовое использование со смешанными типами
Query
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;
Response
┌─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-путями
Query
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;
Response
┌─distinctJSONPathsAndTypes(json)────────────────────────────────┐
│ {'a':['UInt32'],'b':['String'],'c':['Array(Nullable(Int64))']} │
└────────────────────────────────────────────────────────────────┘
Последнее изменение 10 июня 2026 г.