Cláusula DEFINE para MATCH_RECOGNIZE

Aplica-se a:check marked yes Databricks SQL check marked yes Databricks Runtime 19.0 and above

Importante

Esse recurso está em Beta. Os administradores do workspace podem controlar o acesso a esse recurso na página Visualizações . Consulte Gerenciar visualizações do Azure Databricks.

Define as variáveis boolianas que as cláusulas PATTERN e MEASURES de MATCH_RECOGNIZE referenciam e testam.

Syntax

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

Parameters

  • rowPatternVar

    Um identificador exclusivo dentro da DEFINE cláusula. Se você reutilizar um nome, Azure Databricks gerará MATCH_RECOGNIZE_DUPLICATE_PATTERN_VARIABLE.

  • booleanExpr

    Uma expressão booliana que não contém uma subconsulta, uma função de agregação ou uma função de janela e não faz referência a um alias de coluna ou coluna diferente daquele table_reference que precede a MATCH_RECOGNIZE cláusula.

    As referências de coluna podem usar as seguintes funções específicas à DEFINE cláusula:

    Uma referência de coluna pode ser qualificada por um nome de variável de padrão de linha (rowPatternVar.colName). Isso seleciona valores de linhas mapeadas para essa variável na correspondência atual. Por exemplo, LAST(down.tstamp) é o carimbo de data/hora da última linha classificada como down. Referências de coluna não qualificadas referem-se à linha atual na correspondência sem selecionar uma variável de padrão específica.

    Se uma variável de padrão de linha ainda não for correspondida, a referência de coluna qualificada será avaliada como NULL.

    Quando rowPatternVar nomeia a variável de padrão atualmente sendo testada para a linha, rowPatternVar.colName refere-se ao valor da coluna dessa linha e é equivalente a uma não qualificada colName. Quando rowPatternVar nomeia uma variável de padrão diferente, rowPatternVar.colName lê valores de linhas já mapeadas para essa variável.

    Funções não determinísticas como rand() e uuid() não são permitidas em DEFINE predicados porque a simulação de NFA pode avaliar predicados várias vezes por linha. Se você usar um, Azure Databricks aumentará MATCH_RECOGNIZE_NONDETERMINISTIC_DEFINE.

    Funções de agregação gerais diferentes FIRST() e LAST() não têm suporte em DEFINE. Se você usar um, Azure Databricks aumentará MATCH_RECOGNIZE_DEFINE_UNSUPPORTED_AGGREGATE.

Condições de erro comuns