Sdílet prostřednictvím


mode agregační funkce

Platí pro:zaškrtnuto ano Databricks SQL zaškrtnuto ano Databricks Runtime 11.3 LTS a vyšší

Vrátí nejčastější hodnotu, která není NULL, z hodnot expr ve skupině.

mode je ne deterministická funkce, pokud není deterministic nastavena na true.

Syntaxe

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

Tuto funkci lze také vyvolat jako funkci okna pomocí klauzule OVER.

Argumenty

  • expr

    Výraz libovolného typu, který lze porovnat.

  • deterministic

    V Databricks SQL a Databricks Runtime 14.1 a novějších. Volitelný BOOLEANkonstantní výraz. Pokud true zaručuje deterministický výsledek, pokud existuje více hodnot se stejnou frekvencí.

  • cond

    Volitelný BOOLEAN výraz filtrující řádky použité pro agregaci.

Návraty

Typ výsledku odpovídá typu argumentu.

Pokud skupina obsahuje pouze hodnoty null, vrátí NULLfunkce . Výsledek není deterministický, pokud existuje shoda pro nejčastější hodnotu.

Poznámka

I když je deterministic nastaveno na true, výsledky mohou být pro určité STRING kolace, například UTF8_LCASE, nedeterministické.

Příklady

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