Klauzule DEFINE pro MATCH_RECOGNIZE

Platí pro:check marked yes Databricks SQL check marked yes Databricks Runtime 19.0 and above

Important

Tato funkce je v beta verzi. Správci pracovního prostoru můžou řídit přístup k této funkci ze stránky Previews . Viz Manage Azure Databricks preview.

Definuje logické proměnné, které klauzule PATTERN a MEASURESMATCH_RECOGNIZE odkazu a testování.

Syntax

DEFINE { rowPatternVar AS booleanExpr } [, ...]

Parameters

  • rowPatternVar

    Identifikátor, který je v rámci DEFINE klauzule jedinečný. Pokud znovu použijete název, Azure Databricks vyvolá MATCH_RECOGNIZE_DUPLICATE_PATTERN_VARIABLE.

  • booleanExpr

    Logický výraz, který neobsahuje poddotaz, agregační funkci nebo funkci okna, a neodkazuje na jiný alias sloupce nebo sloupce, než je ten, table_reference který předchází MATCH_RECOGNIZE klauzuli.

    Odkazy na sloupce můžou používat následující funkce specifické pro klauzuli DEFINE :

    Odkaz na sloupec může být kvalifikovaný názvem proměnné vzoru řádku (rowPatternVar.colName). Tím se vyberou hodnoty z řádků namapovaných na danou proměnnou v aktuální shodě. Jedná se například LAST(down.tstamp) o časové razítko posledního řádku klasifikovaného jako down. Nekvalifikované odkazy na sloupce odkazují na aktuální řádek ve shodě bez výběru konkrétní proměnné vzoru.

    Pokud se proměnná vzoru řádku ještě neshoduje, vyhodnotí se kvalifikovaný odkaz na NULLsloupec .

    Pokud rowPatternVar pojmenuje proměnnou vzoru, která se aktuálně testuje pro řádek, rowPatternVar.colName odkazuje na hodnotu sloupce daného řádku a je ekvivalentní nekvalifikovanému colName. Když rowPatternVar pojmenuje jinou proměnnou vzoru, rowPatternVar.colName přečte hodnoty z řádků, které jsou namapované na danou proměnnou.

    Nedeterministické funkce, jako rand() jsou a uuid() nejsou povoleny v DEFINE predikátech, protože simulace NFA může vyhodnotit predikáty vícekrát na řádek. Pokud ji použijete, Azure Databricks vyvolá MATCH_RECOGNIZE_NONDETERMINISTIC_DEFINE.

    Obecné agregační funkce jiné než FIRST() a LAST() nejsou podporovány v DEFINE. Pokud ji použijete, Azure Databricks vyvolá MATCH_RECOGNIZE_DEFINE_UNSUPPORTED_AGGREGATE.

Běžné chybové podmínky