适用于:
Databricks SQL
Databricks Runtime 11.3 LTS 及更高版本
返回组中 NULL 的最常见值,而不是 expr。
mode 是非确定性函数,除非 deterministic 设置为 true.
语法
mode(expr [, deterministic ]) [FILTER ( WHERE cond ) ]
自变量
expr可以比较的任何类型的表达式。
deterministic在 Databricks SQL 和 Databricks Runtime 14.1 及更高版本中。 可选
BOOLEAN常量表达式。 如果多个值具有相同频率时,true保证结果为确定性。cond一个可选的
BOOLEAN表达式,可筛选用于聚合的行。
返回
结果类型与参数类型匹配。
如果组仅包含 null,则函数返回 NULL。
如果最常见的值有关联,则结果是不确定的。
注意
即使将 deterministic 设置为 true,对于某些排序规则,例如 STRING,结果也可能是不确定的排序结果,比如 UTF8_LCASE。
示例
> 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)