Freigeben über


schema_of_variant_agg-Aggregatfunktion

Gilt für: Häkchen gesetzt ja Databricks SQL Häkchen gesetzt ja Databricks Runtime 15.3 und höher

Gibt das kombinierte Schema aller VARIANT-Werte in einer Gruppe im DDL-Format zurück

Syntax

schema_of_variant_agg ( variantExpr ) [FILTER ( WHERE cond ) ]

Argumente

  • variantExpr: Ein VARIANT-Ausdruck.
  • cond: Ein optionaler BOOLEAN-Ausdruck, der die für die Aggregation verwendeten Zeilen filtert.

Gibt zurück

Ein STRING-Typ mit einer Schemadefinition des variantExpr. Die Typen im Schema sind die abgeleiteten formatierten SQL-Typen.

Das Schema jedes VARIANT-Werts wird anhand des Feldnamens zusammengeführt. Wenn zwei Felder mit demselben Namen in verschiedenen Datensätzen einen anderen Typ aufweisen, verwendet Azure Databricks den am wenigsten allgemeinen Typ. Wenn kein solcher Typ vorhanden ist, wird der Typ als VARIANT abgeleitet. INT und DOUBLE werden beispielsweise zuDOUBLE, TIMESTAMP und STRING hingegen zu VARIANT.

Verwenden Sie die schema_of_variant-Funktion, um das Schema eines einzelnen VARIANT-Werts abzuleiten.

Beispiele

-- 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>