Udostępnij za pośrednictwem


mode funkcja agregacji

Dotyczy:zaznacz pole wyboru oznaczone jako tak Databricks SQL zaznacz pole wyboru oznaczone jako tak Databricks Runtime 11.3 LTS i nowsze

Zwraca najczęściejszą wartość , a nie NULL, w expr grupie.

mode jest funkcją niedeterministyczną, chyba że deterministic jest ustawiona na truewartość .

Składnia

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

Tę funkcję można również wywołać jako funkcję okna przy użyciu klauzuli OVER .

Argumenty

  • expr

    Wyrażenie dowolnego typu, które można porównać.

  • deterministic

    W usługach Databricks SQL i Databricks Runtime 14.1 i nowszych. Opcjonalne BOOLEAN wyrażenie stałe. Jeśli true gwarantuje wynik deterministyczny, jeśli istnieje wiele wartości o tej samej częstotliwości.

  • cond

    Opcjonalne BOOLEAN wyrażenie filtrujące wiersze używane do agregacji.

Zwraca

Typ wyniku jest zgodny z typem argumentu.

Jeśli grupa zawiera tylko wartości null, funkcja zwraca wartość NULL. Wynik jest niedeterministyczny, jeśli występuje krawat dla najczęściej używanej wartości.

Notatka

Nawet w przypadku deterministic ustawionego na true, wyniki mogą być nieokreślone dla pewnych porządków STRING, takich jak UTF8_LCASE.

Przykłady

> 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)