schema_of_variant_agg 聚合函数

适用于:勾选“是” Databricks SQL 勾选“是” Databricks Runtime 15.3 及更高版本

以 DDL 格式返回组中所有 VARIANT 值的组合架构。

语法

schema_of_variant_agg ( variantExpr ) [FILTER ( WHERE cond ) ]

参数

  • variantExpr:一个 VARIANT 表达式。
  • cond:一个可选的 BOOLEAN 表达式,可筛选用于聚合的行。

返回

用于保存 variantExpr 的架构定义的 STRING。 架构中的类型是派生的格式化 SQL 类型。

每个 VARIANT 值的架构都按字段名称合并在一起。 如果两个具有相同名称的字段跨记录具有不同的类型,则 Azure Databricks 将使用最不常见的类型。 如果不存在此类类型,则类型将派生为 VARIANT。 例如,INTDOUBLE 变为 DOUBLE,而 TIMESTAMPSTRING 变为 VARIANT

若要派生单个 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>