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 true.

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 gdy deterministic jest ustawione na true, wyniki mogą być nieokreślone dla niektórych sortowań typu 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)