mode
função agregar
Aplica-se a: Databricks SQL Databricks Runtime 11.3 LTS e superior
Devolve o valor mais frequente, não NULL
, de expr
num grupo.
mode
é uma função não determinística, a menos que deterministic
esteja definida como true
.
Sintaxe
mode(expr [, deterministic ]) [FILTER ( WHERE cond ) ]
Esta função também pode ser invocada como uma função de janela usando a OVER
cláusula.
Argumentos
expr
Uma expressão de qualquer tipo que pode ser comparada.
deterministic
Em Databricks SQL e Databricks Runtime 14.1 e superior. Uma expressão constante opcional
BOOLEAN
. Setrue
garante 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.
Devoluções
O tipo de resultado corresponde ao tipo do argumento.
Se o grupo contiver apenas nulos, a função retornará NULL
.
O resultado é não determinístico se houver empate para o valor mais frequente.
Observação
Mesmo com deterministic
definido para true
, os resultados podem ser não determinísticos para certos agrupamentos 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)