Dela via


mode aggregatfunktion

Gäller för:markerad ja Databricks SQL markerad ja Databricks Runtime 11.3 LTS och senare

Returnerar det vanligaste, inte NULL, värdet expr för i en grupp.

mode är en icke-deterministisk funktion om inte deterministic är inställd på true.

Syntax

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

Den här funktionen kan också anropas som en -fönsterfunktion med hjälp av OVER-satsen.

Argument

  • expr

    Ett uttryck av valfri typ som kan jämföras.

  • deterministic

    I Databricks SQL och Databricks Runtime 14.1 och senare. Ett valfritt BOOLEANkonstant uttryck. Om true garanterar ett deterministiskt resultat om det finns flera värden med samma frekvens.

  • cond

    Ett valfritt BOOLEAN uttryck som filtrerar de rader som används för aggregering.

Återlämningar

Resultattypen matchar typen av argument.

Om gruppen bara innehåller null returnerar NULLfunktionen . Resultatet är icke-deterministiskt om det finns ett oavgjort värde för det vanligaste värdet.

Notera

Även om deterministic är inställt på truekan resultatet vara icke-deterministiskt för vissa STRING sorteringar, till exempel UTF8_LCASE.

Exempel

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