Dela via


mode mängdfunktion

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 såvida inte deterministic är set till true.

Syntax

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

Den här funktionen kan också anropas som en window funktion 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 BOOLEAN konstant uttryck. Om true garanterar ett deterministiskt resultat om det finns flera values med samma frekvens.

  • cond

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

Returer

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.

Not

Även med deterministicset till truekan resultaten vara icke-deterministiska 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)