Поделиться через


Агрегатная функция schema_of_variant_agg

Область применения: флажок Databricks SQL флажок Databricks Runtime 15.3 и более поздних версий

Возвращает объединенную схему всех VARIANT значений в группе в формате DDL.

Синтаксис

schema_of_variant_agg ( variantExpr ) [FILTER ( WHERE cond ) ]

Аргументы

  • variantExpr: Выражение VARIANT.
  • cond: необязательное BOOLEAN выражение, фильтрующее строки, используемые для агрегирования.

Возвраты

Содержит STRING определение variantExprсхемы объекта . Типы в схеме являются производными типами SQL.

Схема каждого VARIANT значения объединяется по имени поля. Если два поля с одинаковым именем имеют другой тип в записях, Azure Databricks использует наименее распространенный тип. Если такой тип не существует, тип является производным как .VARIANT Например, и стать, а STRING TIMESTAMP также статьVARIANT.DOUBLEDOUBLE INT

Чтобы получить схему одного VARIANT значения, используйте функцию schema_of_variant .

Примеры

-- Simple example
> SELECT schema_of_variant_agg(a) FROM VALUES(parse_json('{"foo": "bar"}')) AS data(a);
  OBJECT<foo: STRING>

> SELECT schema_of_variant_agg(a) FROM VALUES(parse_json('[1]')) AS data(a);
  ARRAY<BIGINT>

> CREATE TEMPORARY VIEW data(a) AS VALUES
  (parse_json('{"foo": "bar", "wing": {"ding": "dong"}}')),
  (parse_json('{"wing": 123}'));
> SELECT schema_of_variant_agg(a) FROM data;
  OBJECT<foo: STRING, wing: VARIANT>