Share via


mode 集計関数

適用対象:check marked yes Databricks SQL 「はい」のチェック マーク Databricks Runtime 11.3 LTS 以降

グループ内の最も頻度の高い、NULL でない expr の値を返します。

mode は、deterministictrue に設定されていない限り、非決定論的関数です。

構文

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

この関数は、OVER 句を使用して ウィンドウ 関数として呼び出すこともできます。

引数

  • expr

    比較可能な任意の型の式。

  • deterministic

    Databricks SQL および Databricks Runtime 14.1 以上。 省略可能な BOOLEAN 定数式。 同じ頻度で複数の値が存在する場合に、true が決定論的な結果が保証する場合。

  • cond

    集計に使用される行をフィルター処理する省略可能な BOOLEAN 式。

返品

結果の型は引数の型と一致します。

グループに null のみが含まれている場合、この関数は NULL を返します。 最も頻度の高い値が複数ある場合、結果は決定論的ではありません。

> 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