Clausola DEFINE per MATCH_RECOGNIZE

Si applica a:check contrassegnato come sì controllo SQL di Databricks contrassegnato come sì Databricks Runtime 19.0 e versioni successive

Importante

Questa funzionalità è in versione beta. Gli amministratori dell'area di lavoro possono controllare l'accesso a questa funzionalità dalla pagina Anteprime . Vedere Gestire le anteprime di Azure Databricks.

Definisce le variabili booleane che le clausole PATTERN e MEASURES di MATCH_RECOGNIZE riferimento e test.

Syntax

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

Parameters

  • rowPatternVar

    Identificatore univoco all'interno della DEFINE clausola . Se si riutilizza un nome, Azure Databricks genera MATCH_RECOGNIZE_DUPLICATE_PATTERN_VARIABLE.

  • booleanExpr

    Espressione booleana che non contiene una sottoquery, una funzione di aggregazione o una funzione window e non fa riferimento a una colonna o a un alias di colonna diverso da quelli di table_reference che precede la MATCH_RECOGNIZE clausola .

    I riferimenti a colonne possono usare le funzioni seguenti specifiche della DEFINE clausola :

    Un riferimento a una colonna può essere qualificato da un nome di variabile del criterio di riga (rowPatternVar.colName). In questo modo vengono selezionati i valori delle righe mappate a tale variabile nella corrispondenza corrente. Ad esempio, LAST(down.tstamp) è il timestamp dell'ultima riga classificata come down. I riferimenti a colonne non qualificate fanno riferimento alla riga corrente nella corrispondenza senza selezionare una variabile di pattern specifica.

    Se una variabile del criterio di riga non è ancora corrispondente, il riferimento di colonna qualificato restituisce NULL.

    Quando rowPatternVar si assegna un nome alla variabile pattern attualmente in fase di test per la riga, rowPatternVar.colName fa riferimento al valore di colonna della riga ed è equivalente a un oggetto non qualificato colName. Quando rowPatternVar si assegna un nome a una variabile di pattern diversa, rowPatternVar.colName legge i valori dalle righe già mappate a tale variabile.

    Funzioni non deterministiche come rand() e uuid() non sono consentite nei DEFINE predicati perché la simulazione NFA può valutare i predicati più volte per riga. Se si usa uno, Azure Databricks genera MATCH_RECOGNIZE_NONDETERMINISTIC_DEFINE.

    Le funzioni di aggregazione generali diverse da FIRST() e LAST() non sono supportate in DEFINE. Se si usa uno, Azure Databricks genera MATCH_RECOGNIZE_DEFINE_UNSUPPORTED_AGGREGATE.

Condizioni di errore comuni