次の方法で共有


schema_of_variant_agg 集計関数

適用対象: check marked yes Databricks SQL Databricks Runtime 15.3 以降

グループ内のすべての VARIANT 値を結合したスキーマを DDL 形式で返します。

構文

schema_of_variant_agg ( variantExpr ) [FILTER ( WHERE cond ) ]

引数

  • variantExpr: VARIANT 式。
  • cond: 集計に使用される行をフィルター処理する BOOLEAN 式 (省略可能)。

返品

variantExpr のスキーマ定義を保持する STRING。 スキーマ内の型は、導出された書式設定済みの SQL 型です。

VARIANT の値それぞれのスキーマは、フィールド名別にマージされます。 同じ名前の 2 つのフィールドの種類がレコード間で異なる場合、Azure Databricks では最も一般的でない型が使用されます。 このような型が存在しない場合、型は VARIANT として派生します。 たとえば、 INTDOUBLEDOUBLE になり、TIMESTAMPSTRINGVARIANT になります。

単一の 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>