Compartilhar via


Função de agregação mode

Aplica-se a:verificação marcada como sim SQL do Databricks caixa de seleção marcada Databricks Runtime 11.3 LTS e versões posteriores

Retorna o valor de NULL mais frequente, não expr, em um grupo.

mode é uma função não determinística, a menos que deterministic seja definido como true.

Sintaxe

mode(expr [, deterministic ]) [FILTER ( WHERE cond ) ]

Essa função também pode ser invocada como uma função de janela usando a cláusula OVER.

Argumentos

  • expr

    Uma expressão de qualquer tipo que possa ser comparada.

  • deterministic

    No Databricks SQL e Databricks Runtime 14.1 e superior. Uma expressão constante opcional BOOLEAN. Se true garantir um resultado determinístico se houver vários valores com a mesma frequência.

  • cond

    Uma expressão opcional BOOLEAN filtrando as linhas usadas para agregação.

Retorna

O tipo de resultado corresponde ao tipo de argumento.

Se o grupo contiver apenas valores nulos, a função retornará NULL. O resultado será não determinístico se houver um empate no valor mais frequente.

Nota

Mesmo com deterministic definido como true, os resultados podem ser não determinísticos para determinadas ordenações STRING, como UTF8_LCASE.

Exemplos

> SELECT mode(col) FROM VALUES (NULL), (1), (NULL), (2), (NULL), (3), (3) AS tab(col);
 3

> SELECT mode(col) FROM VALUES (array(1, 2)), (array(1, 2)), (array(2, 3)) AS tab(col);
 [1, 2]

-- The function returns either 1 or 2, but not 3
> SELECT mode(col) FROM VALUES (1), (1), (2), (2), (3) AS tab(col);
 1

> SELECT mode(col) FROM VALUES (NULL), (NULL) AS tab(col);
 NULL

> SELECT mode(col COLLATE UTF8_LCASE, true) FROM VALUES('a'), ('A'), ('b') AS tab(col);
 a (or A)