Função de agregação mode
Aplica-se a: SQL do Databricks 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
. Setrue
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)