mode
funkcja agregacji
Dotyczy: Databricks SQL 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
wartość .
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ślitrue
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)