Partilhar via


mode função agregar

Aplica-se a:Marque Sim Databricks SQL Marque Sim 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 . Se true 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)