適用対象:
Databricks SQL
Databricks Runtime 11.3 LTS 以降
グループ内の最も頻度の高い、NULL でない expr の値を返します。
mode は、deterministic が true に設定されていない限り、非決定論的関数です。
構文
mode(expr [, deterministic ]) [FILTER ( WHERE cond ) ]
この関数は、 句を使用して OVERとして呼び出すこともできます。
引数
expr比較可能な任意の型の式。
deterministicDatabricks 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)