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
。 例如,INT
和 DOUBLE
变为 DOUBLE
,而 TIMESTAMP
和 STRING
变为 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>